1、 多词条查询:
多词条查询 允许匹配那些在内容中含有某些词条的文档。词条查询允许匹配单个未经分析的词条,多词条查询可以用来匹配多个这样的词条。假设想得到所有在tags字段中含有novel或book的文档。运行以下查询来达到目的:
{
"query":{
"terms":{
"tags":["novel","book"],
"minimum_match":1
}
}
}
把minimum_match属性设置为1;这意味着至少有1个词条应该匹配。如果想要查询匹配所有词条的文档,可以把minimum_match属性设置为2
2、使用bool查询来合并多个term插叙。
可以通过布尔查询来封装无限数量的查询,并通过下面描述的节点之一使用一个逻辑值来连接它们。
should:被它封装的布尔查询可能被匹配,也可能不被匹配。
被匹配的should节点数由minimum_should_match参数控,此参数的值描述了文档被视为匹配时,应该匹配的should子句的最少数量。举例来说,它可以是个整数值,比如2,也可以是个百分比,比如75%。
3、must:被它封装的布尔查询必须被匹配,文档才会返回。
4、must_not:被它封装的布尔查询必须不被匹配,文档才会返回。
{
"query":{
"bool":{
"should":{
"term":{
"title":"aa"
}
},
"should":{
"term":{
"title":"bb"
}
},
"should":{
"term":{
"title":"cc"
}
},
minimum-should-match=1
}
}
}