007 搜索API

1.说明

  这个API用于在elasticsearch中搜索内容,用户可以通过发送以查询字符串为参数的get请求进行搜索,也可以在post请求的消息体中进行查询。

  

2.多索引

  允许搜索所有的索引或某些特定索引中的文档。

  例如:在多索引中搜索name中包含tom1的文档。

  ①在多索引中搜索

1 GET /index1,index2,index3/_search?q=name:tom1

  效果:

 1 {
 2   "took" : 1,
 3   "timed_out" : false,
 4   "_shards" : {
 5     "total" : 3,
 6     "successful" : 3,
 7     "skipped" : 0,
 8     "failed" : 0
 9   },
10   "hits" : {
11     "total" : {
12       "value" : 2,
13       "relation" : "eq"
14     },
15     "max_score" : 0.2876821,
16     "hits" : [
17       {
18         "_index" : "index1",
19         "_type" : "_doc",
20         "_id" : "1",
21         "_score" : 0.2876821,
22         "_source" : {
23           "name" : "tom1",
24           "sex" : "M",
25           "address" : "SH"
26         }
27       },
28       {
29         "_index" : "index2",
30         "_type" : "_doc",
31         "_id" : "1",
32         "_score" : 0.2876821,
33         "_source" : {
34           "name" : "tom1",
35           "age" : 20
36         }
37       }
38     ]
39   }
40 }

  ②全索引中搜索

    可以不加_all

1 GET /_search?q=name:tom1

  效果:

 1 {
 2   "took" : 4,
 3   "timed_out" : false,
 4   "_shards" : {
 5     "total" : 9,
 6     "successful" : 9,
 7     "skipped" : 0,
 8     "failed" : 0
 9   },
10   "hits" : {
11     "total" : {
12       "value" : 3,
13       "relation" : "eq"
14     },
15     "max_score" : 0.2876821,
16     "hits" : [
17       {
18         "_index" : "index1",
19         "_type" : "_doc",
20         "_id" : "1",
21         "_score" : 0.2876821,
22         "_source" : {
23           "name" : "tom1",
24           "sex" : "M",
25           "address" : "SH"
26         }
27       },
28       {
29         "_index" : "index2",
30         "_type" : "_doc",
31         "_id" : "1",
32         "_score" : 0.2876821,
33         "_source" : {
34           "name" : "tom1",
35           "age" : 20
36         }
37       },
38       {
39         "_index" : "school",
40         "_type" : "_doc",
41         "_id" : "1",
42         "_score" : 0.18232156,
43         "_source" : {
44           "name" : "tom1",
45           "sex" : "M",
46           "age" : "20"
47         }
48       }
49     ]
50   }
51 }

 

3.URL搜索

  在2中的多索引示例中,其实使用的就是纯粹使用URI执行搜索请求。

  在上文中使用的参数是q,下面还有一些请求参数可以使用,如下:

  • Q:用于指定搜索的字符串

  • lenient:若将此参数设置为true,就可以忽略基于格式的错误。默认情况下,它为false。

  • fields:该参数帮助我们从选择性字段中获得响应。

  • sort:我们可以通过使用这个参数改变排序结果,这个参数允许的值是字段名:ASC/字段名:desc

  • timeout:我们可以通过使用该参数来限制搜索时间,并且响应仅包含在指定时间内的命中。默认情况下,不指定timeout。

  • terminate_after:对于每个分片,我们可以将响应限制在指定数量的文档,一旦达到这个数量,查询将提前终止。默认情况下,不指定terminate_after。

  • from:从指定的索引开始返回. 默认为0.

  • size:表示要返回的记录数. 默认为10.

 

4.请求体查询

  The search request can be executed with a search DSL, which includes the Query DSL, within its body。  

  意思是:

  搜索请求可以使用包含查询DSL的搜索DSL,在其主体中执行

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

 

转载于:https://www.cnblogs.com/juncaoit/p/11304256.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值