大数据培训技术Search API(URI)

发布时间:2021年02月01日作者:atguigu浏览次数:591

Search API(URI)

GET /_search                                           #查询所有索引文档

GET /my_index/_search                             #查询指定索引文档

GET /my_index1,my_index2/_search          #多索引查询

GET /my_*/_search     

2019-03-xxx

2019-04-vvv

2019-05-xxx               

  • URI查询方式(查询有限制,很多配置不能实现)

GET /my_index/_search?q=user:alfred        #指定字段查询

GET /my_index/_search?q=keyword&df=user&sort=age:asc&from=4&size=10&timeout=1s

q : 指定查询的语句,例如q=aa或q=user:aa

df:q中不指定字段默认查询的字段,如果不指定,es会查询所有字段

Sort:排序,asc升序,desc降序

timeout:指定超时时间,默认不超时

from,size:用于分页

  • term与phrase

term相当于单词查询,phrase相当于词语查询

term:Alfred way等效于alfred or way

phrase:”Alfred way” 词语查询,要求先后顺序

  • 泛查询

Alfred等效于在所有字段去匹配该term(不指定字段查询)

  • 指定字段

name:alfred

  • Group分组设定(),使用括号指定匹配的规则

(quick OR brown)AND fox:通过括号指定匹配的优先级

status:(active OR pending) title:(full text search):把关键词当成一个整体

  • 查询案例及详解
  • 批量创建文档

大数据培训

大数据培训

  • 泛查询

GET test_search_index/_search?q=alfred

 

  • 查询语句执行计划查看

GET test_search_index/_search?q=alfred

{

  “profile”:true

}

  • term查询

GET test_search_index/_search?q=username:alfred way            #alfred OR way

 

  • phrase查询

GET test_search_index/_search?q=username:”alfred way”

 

6、group查询

GET test_search_index/_search?q=username:(alfred OR way)

 

7、布尔操作符

(1)AND(&&),OR(||),NOT(!)

例如:name:(tom NOT lee) 

#表示name字段中可以包含tom但一定不包含lee

  • +、-分别对应must和must_not

例如:name:(tom +lee -alfred)    

#表示name字段中,一定包含lee,一定不包含alfred,可以包含tom

注意:+在url中会被解析成空格,要使用encode后的结果才可以,为%2B

 

GET test_search_index/_search?q=username:(alfred %2Bway)

  • 范围查询,支持数值和日期
  • 区间:闭区间:[],开区间:{}

age:[1 TO 10] #1<=age<=10

age:[1 TO 10} #1<=age<10

age:[1 TO ]     #1<=age

age:[* TO 10] #age<=10

  • 算术符号写法

age:>=1

age:(>=1&&<=10)或者age:(+>=1 +<=10)

  • 通配符查询

?:1个字符

*:0或多个字符

例如:name:t?m

  name:tom*

  name:t*m

注意:通配符匹配执行效率低,且占用较多内存,不建议使用,如无特殊要求,不要讲?/*放在最前面

  • 正则表达式

name:/[mb]oat/

  • 模糊匹配fuzzy query

name:roam~1               [0,1,2]  

匹配与roam差1个character的词,比如foam、roams等

  • 近似度查询proximity search

“fox quick”~5

以term为单位进行差异比较,比如”quick fox” “quick brown fox”。

想要了解跟多关于大数据培训课程内容欢迎关注尚硅谷java培训,尚硅谷除了这些技术文章外还有免费的高质量java培训课程视频供广大学员下载学习。


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦3层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)

成都市成华区北辰星拱青创园(成都校区)