1.什么是Elasticsearch Search API?
顾名思义就是Elasticsearch的搜索api
它可以分为两大类:
1. URI Search:在URL中使用查询参数
2. Request Body Search:使用elasticsearch提供的,基于
JSON格式的查询Domain的语言,简称DSL
利用postman逐一举例如下:
*
1.URI Search
http://{host}:{port}/索引名称/_search?q=2020&df=2020&from=0&size=10&timeout=1s
{"profile":true}
针对上述参数一一作出解释,如下:
q:指定查询参数(query string syntax),还可以指定key value,比如:q=key:value
df:指定字段查询,和q配合使用,比如:q=charger&df=userName
from和size:分页参数,默认0和10
profile为true时可以查看查询怎么被执行的
query string syntax:查询字符串的语法,支持多种查询方式:通配符查询,正则表达式,模糊匹配和近似查询
- 查询所有索引
http://127.0.0.1:9200/_search
- 查询指定索引
http://127.0.0.1:9200/user/_search
- 批量查询索引
http://127.0.0.1:9200/test1,test/_search
- 通过通配符的方式查询索引
http://127.0.0.1:9200/test*/_search
- 查询test0下面userName="charger"的文档信息
http://127.0.0.1:9200/test0/_search?q=userName:charger
2. Request Body Search(支持GET和POST)
http://{host}:{port}/_search
简单举例说明:
{ “query”:{ “match_all”:{} } }
query表示查询 match_all表示匹配所有
{ “query”:{ “match”:{ “userName”:{“query”:“charger huxinrong”,“operator”:“or” } } } }
类似mysql的where userName=charger or userName=huxinrong
{ “query”:{ “match_phrase”:{ “userName”:{
“query”:“charger test”,
“slop”:2 } } } }
slop表示charger test中间可以插入一个字符