Elasticsearch 零基础到入门新手教程(3)

所有其他语言可以使用 RESTful API 通过端口 9200 和Elasticsearch 进行通信,你可以用你最喜爱的 web客户端访问 Elasticsearch 。 事实上,正如你所看到的,你甚至可以使用 curl 命令来和 Elasticsearch 交互。 

一个 Elasticsearch 请求和任何 HTTP 请求一样由若干相同的部件组成:

1

 

curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'

 

VERB 适当的 HTTP 方法 或 谓词 :GET、 POST、 PUT、 HEAD或者 DELETE。 

PROTOCOL http 或者 https(如果你在 Elasticsearch 前面有一个 https 代理)

HOST Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点

PORT 运行 Elasticsearch HTTP 服务的端口号,默认是 9200 。 

PATH API 的终端路径(例如 _count 将返回集群中文档数量)。 Path 可能包含多个组件,

例如:_cluster/stats 和 _nodes/stats/jvm 。

QUERY_STRING 任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读) 

BODY 一个 JSON 格式的请求体 (如果请求需要的话)

插入索引数据 
每个雇员索引一个文档,包含该雇员的所有信息。 
每个文档都将是 employee 类型 。 
该类型位于 索引 megacorp 内。 
该索引保存在我们的 Elasticsearch 集群中。

+ View Code?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

 

#插入3条数据

curl -XPUT 'localhost:9200/megacorp/employee/1?pretty' -H 'Content-Type: application/json' -d'

{

"first_name" : "John",

"last_name" : "Smith",

"age" : 25,

"about" : "I love to go rock climbing",

"interests": [ "sports", "music" ]

}'

 

curl -XPUT 'localhost:9200/megacorp/employee/2?pretty' -H 'Content-Type: application/json' -d'

{

"first_name" : "Jane",

"last_name" : "Smith",

"age" : 32,

"about" : "I like to collect rock albums",

"interests": [ "music" ]

}'

 

curl -XPUT 'localhost:9200/megacorp/employee/3?pretty' -H 'Content-Type: application/json' -d'

{

"first_name" : "Douglas",

"last_name" : "Fir",

"age" : 35,

"about": "I like to build cabinets",

"interests": [ "forestry" ]

}'

 

查询索引中一行数据:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

 

[root@ES-100 ~]# curl -XGET 'localhost:9200/megacorp/employee/1?pretty'

{

  "_index" : "megacorp",

  "_type" : "employee",

  "_id" : "1",

  "_version" : 1,

  "found" : true,

  "_source" : {

    "first_name" : "John",

    "last_name" : "Smith",

    "age" : 25,

    "about" : "I love to go rock climbing",

    "interests" : [

      "sports",

      "music"

    ]

  }

}

 

查询索引中的所有信息

1

 

[root@ES-100 ~]# curl -XGET 'localhost:9200/megacorp/employee/_search?pretty'

 

Elasticsearch 零基础到入门新手教程

查询索引中符合条件的数据 
搜索姓氏为 Smith 的雇员

1

 

[root@ES-100 ~]# curl -XGET 'localhost:9200/megacorp/employee/_search?q=last_name:Smith&pretty'

 

 

Elasticsearch 零基础到入门新手教程

使用查询表达式查询想要的数据 
Query-string 搜索通过命令非常方便地进行临时性的即席搜索 ,但它有自身的局限性 
Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 ,它支持构建更加复杂和健壮的查询。

领域特定语言 (DSL), 指定了使用一个 JSON 请求。我们可以像这样重写之前的查询所有 Smith 的搜索 :

1

2

3

4

5

6

7

8

 

curl -XGET 'localhost:9200/megacorp/employee/_search?pretty' -H 'Content-Type: application/json' -d'

{

"query" : {

"match" : {

"last_name" : "Smith"

}

}

} '

 

Elasticsearch 零基础到入门新手教程

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/0b85b6141a93dda06aa22fb80439f5cc.html