elasticsearch 怎么同时检索单 field 多个值的条件

 我来答
地瓜说机
2017-10-24 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.1亿
展开全部
多词条查询:
多词条查询 允许匹配那些在内容中含有某些词条的文档。词条查询允许匹配单个未经分析的词条,多词条查询可以用来匹配多个这样的词条。假设想得到所有在tags字段中含有novel或book的文档。运行以下查询来达到目的:

{
"query" : {
"terms" : {
"tags" : [ "novel", "book" ],
"minimum_match" : 1
}
}
}

上述查询返回在tags字段中包含一个或两个搜索词条的所有文档。为什么?这是因为我们把minimum_match属性设置为1;这意味着至少有1个词条应该匹配。如果想要查询匹配所有词条的文档,可以把minimum_match属性设置为2

2. 使用bool查询来合并多个term插叙。
可以通过布尔查询来封装无限数量的查询,并通过下面描述的节点之一使用一个逻辑值来连接它们。
should:被它封装的布尔查询可能被匹配,也可能不被匹配。
被匹配的should节点数目由minimum_should_match参数控,此参数的值描述了文档被视为匹配时,应该匹配的should子句的最少数量。举例来说,它可以是个整数值,比如2,也可以是个百分比,比如75%。
must:被它封装的布尔查询必须被匹配,文档才会返回。
must_not:被它封装的布尔查询必须不被匹配,文档才会返回。

{
"query" : {
"bool" : {
"should" : {
"term" : {
"title" : "aa"
}
},
"should" : {
"term" : {
"title" : "bb"
}
},
"should" : {
"term" : {
"title" : "cc"
}
},
minimum-should-match=1
}
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式