elasticsearch怎么同时检索单field多个值?

 我来答
反转的天空之城
推荐于2019-09-05 · TA获得超过2.2万个赞
知道小有建树答主
回答量:26
采纳率:5%
帮助的人:4.8万
展开全部

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

}

}

}

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。

Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的企业搜索引擎。

设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,令我们受打击的是,搜索工作是很难的。我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式