基本查询
GET /movies/_search?q=beautiful&df=title&sort=year:desc&from=0&size=10&timeout=1s
{
"profile": "true"
}
参数 | 意义 |
---|---|
q | 查询关键字 |
df | 指定字段 |
sort | 排序规则 |
from | 分页,从多少条开始 |
size | 取多少条 |
timeout | 超时时间 |
profile | 是否返回执行计划 |
Term Query
指定字段查询,在 title
和year
字段上查询2012
GET /movies/_search?q=2012&df=title&df=year
{
"profile": "true"
}
GET /movies/_search?q=title:2012
{
"profile": "true"
}
泛查询
只指定关键字,ElasticSearch会在所有字段上进行查找
GET /movies/_search?q=2012
{
"profile": "true"
}
Phrase Query
段落查询,将关键字使""
包裹,给定的关键字必须出现,并且按照指定顺序
GET /movies/_search?q="my love"
{
"profile": "true"
}
//查询my love 必须按照这个顺序出现的文档
Bool Query
符号 | 示例 | 备注 |
---|---|---|
AND | my AND love | 注意AND必须大写,必须包含my 和 love |
NOT | my NOT love | 注意NOT必须大写,必须包含my,一定不能包含love |
OR | my OR love | 注意OR必须大写,包含My 或者包含love |
&& | my && love | 和AND一致 |
! | my ! love | 和NOT一致 |
|| | my || love | 和OR一致 |
+ | +my +love | 必须包含my。必须包含love,不考虑顺序 |
- | my -love | 包含my,且不包含love |
GET /movies/_search?q=title:(+the -me)
{
"profile": "true"
}
//查询包含the 不包含me的文档
范围查询
GET /movies/_search?q=(year:>=2000 AND title:"my")
{
"profile": "true"
}
通配符查询
GET /movies/_search?q=title:to?
{
"profile": "true"
}
?
:表示匹配一个字符,比如to? 能匹配 top,toy等
*
:表示匹配0或则多个字符
正则匹配
GET /movies/_search?q=title:to[py]
{
"profile": "true"
}
//能匹配toy,top
模糊匹配与近似匹配
在可能拼错单词上非常有用,比如这里我故意拼错the
,也能查出来
GET /movies/_search?q=title:teh~1
{
"profile": "true"
}
在Phrase匹配中,引号后面加~2
,则近似匹配the something love 等等
GET /movies/_search?q=title:"the love"~2
{
"profile": "true"
}