Categories: DevOps数据库编程

Curl命令来访问Elasticsearch?

Elasticsearch是一个基于Lucene库的搜索引擎。它提供了一个分布式的、支持多租户的全文搜索引擎,带有HTTP web接口和无模式的JSON文档。Elasticsearch提供了Kibana,用于Elasticsearch的开源数据可视化仪表板。

在特定的情况我们没有界面可以看,只能通过命令行来访问获取ES中数据和结构,这时Curl命令就派上用场了。

Curl请求格式

搜索请求可以使用搜索DSL(其中包括查询DSL)来执行。

GET /<index>/_search
{
  "query": {<parameters>}
}

例子:

GET /twitter/_search
{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

常用的请求

  1. 获取中索引结构
    curl -XGET http://10.168.0.2:9200/<index>/_mapping?pretty
  2. 发送查询请求
    curl -X POST http://10.168.0.2:9200/<index>/_search -H "Content-Type:application/json" -d '{"query": {"bool": {"filter": [{"terms": {"id": [24, 26 ] } } ] } } }'
  3. 复杂的查询请求
    curl -X POST http://10.168.0.2:9200//_search -H "Content-Type:application/json" -d ‘
    {
    "query": {
        "constant_score": {
            "filter": {
                "bool": {
                    "filter": [
                        {
                            "term": {
                                "disabled": true
                            }
                        },
                        {
                            "terms": {
                                "id": [
                                    24,
                                    902,
                                    915
                                ]
                            }
                        }
                    ],
                    "must_not": [
                        {
                            "terms": {
                                "country_ex": [
                                    "in"
                                ]
                            }
                        }
                    ]
                }
            }
        }
    },
    "sort": {
        "id": {
            "order": "desc"
        }
    }
    }'
4.5
04
MySQL - CHAR vs VARCHAR区别
shell分析nginx日志
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

Linux中你必须知道的5个压缩命令

Linux系统具有丰富的包和解…

7小时 ago

Shell脚本定时执行的三种方法

Shell脚本是Unix和Li…

7小时 ago

Linux中你必须知道的5个解压缩命令

Linux操作系统中有许多强大…

7小时 ago

Golang如何实现三元表达式?

三元表达式又被称为条件表达式,…

8小时 ago

还不知道Unix和Linux有哪些不同?

随着技术的进步和全球范围内的数…

12小时 ago

Reality Defender一款抵御深度伪造威胁的工具

在数字欺诈猖獗的时代,Real…

13小时 ago