# 指定字段查询
GET /movies/_search?q=title:2012&df=title&sort=year:desc&from=0&size=10&timeout=1s
{
"profile": "true"
}
# 泛查询
GET /movies/_search?q=2012
{
"profile": "true"
}
2. Term和Phrase
# Beautiful Mind等效于Beautiful OR Mind
# “Beautiful Mind”,等效于Beautiful AND Mind。Phrase查询,还要求前后顺序保持一致
# 使用引号,Phrase查询,必须同时存在Beautiful Mind,且顺序保持一致
GET /movies/_search?q=title:"Beautiful Mind"
{
"profile": "true"
}
# 不使用引号,Mind为泛查询,查询title中包含Beautiful,其余字段包含Mind
GET /movies/_search?q=title:Beautiful Mind
{
"profile": "true"
}
3. 分组与引号
# title:(Beautiful AND Mind)
# title="Beautiful Mind"
# 分组,bool查询,查询title中包含Beautiful或者Mind的,默认是OR
GET /movies/_search?q=title:(Beautiful Mind)
{
"profile": "true"
}
4. 布尔操作
# AND / OR / NOT 或者 && / || / !
# 必须大写(title:(A NOT B))
# + 表示must
# - 表示must_not
# title:(+A -B)
# 分组使用AND
GET /movies/_search?q=title:(Beautiful AND Mind)
{
"profile": "true"
}
# 分组使用NOT
GET /movies/_search?q=title:(Beautiful NOT Mind)
{
"profile": "true"
}
# 分组查询
GET /movies/_search?q=title:(+Beautiful -Mind)
{
"profile": "true"
}
# 分组查询,%2B表示+
GET /movies/_search?q=title:(Beautiful %2BMind)
{
"profile": "true"
}
5. 范围查询
# 区间表示:[]闭区间,{}开区间
# year:{2019 TO 2018} year:[* TO 2018]
# 算数符号:year:>2010
# 范围查询
GET /movies/_search?q=year:>=1980
{
"profile": "true"
}
# 区间
GET /movies/_search?q=year:[* TO 2018]
{
"profile": "true"
}
Elasticsearch的Search API1. API类型- URI Search:在URL中使用查询参数- Request Body Search:使用Elasticsearch提供的,基于JSON格式的更加完备的Query Domain Specific Language(DSL)2. API查询范围语法范围/_search集群上所有的索引/index1/_searchindex1/index1,index2/_searchindex1和index