丰富的查询语句:
#match查询 这个会将爬虫二字分开 大小写处理 分词
GET lagou/_search
{
"query":{
"match":{
"title":"爬虫"
}
}
}
#term查询 爬虫二字不处理 不解析字段
GET lagou/_search
{
"query":{
"term":{
"title":"爬虫"
}
}
}
#terms查询 只要中了列表中的一个字段及 返回结果
GET lagou/_search
{
"query":{
"terms":{
"title":["爬虫","网站"]
}
}
}
#控制查询的返回结果 数量控制
GET lagou/_search
{
"query":{
"match":{
"title":"爬虫"
}
},
"form":1,
"size":2
}
#match_phrase短语查询 会把关键字分词,但是查询结果必须满足全部词条
#slop表示词条之间的最小距离
GET lagou/_search
{
"query":{
"match_phrase":{
"title":{
"query":"python系统",
"slop":6
}
}
}
}
#multi_search 指定多个字段查询
#fields 指明查询的目标字段
GET lagou/_search
{
"query":{
"multi_match":{
"title":{
"query":"python系统",
"fields":["title","desc"]
}
}
}
}
#指定返回字段 "title","company_name"
GET lagou/_search
{
"stored_fields":["title","company_name"],
"query":{
"match":{
"title":"python"
}
}
}
#sort结果排序
#range范围查询
#wildCard模糊查询
还有:
#bool查询
Bool查询对应Lucene中的BooleanQuery,它由一个或者多个子句组成,每个子句都有特定的类型。must
返回的文档必须满足must子句的条件,并且参与计算分值
filter
返回的文档必须满足filter子句的条件。但是不会像Must一样,参与计算分值
should
返回的文档可能满足should子句的条件。在一个Bool查询中,如果没有must或者filter,有一个或者多个should子句,那么只要满足一个就可以返回。minimum_should_match参数定义了至少满足几个子句。
must_nout
返回的文档必须不满足must_not定义的条件。
如果一个查询既有filter又有should,那么至少包含一个should子句。
bool查询也支持禁用协同计分选项disable_coord。一般计算分值的因素取决于所有的查询条件。
bool查询也是采用more_matches_is_better的机制,因此满足must和should子句的文档将会合并起来计算分值。