我正在尝试使用elasticsearch返回在两个字段中具有不同术语的文档。不知道怎么写这个,可能是这样的:
query:
field1: "term set #1"
field2: "very different term set #2"
理想情况下,术语集应该是字符串数组。我希望所有的条款和字段点击率被或,这样最好的文件将有所有点击率在每个领域,但如果任何领域没有,那就可以了。
我正在尝试使用elasticsearch返回在两个字段中具有不同术语的文档。不知道怎么写这个,可能是这样的:
query:
field1: "term set #1"
field2: "very different term set #2"
理想情况下,术语集应该是字符串数组。我希望所有的条款和字段点击率被或,这样最好的文件将有所有点击率在每个领域,但如果任何领域没有,那就可以了。
2条答案
按热度按时间r6vfmomb1#
你可以用
Terms Query
以及bool should
为了实现这一点,假设您希望在不进行分析的情况下匹配精确的值。世界之美Terms Query
它隐式地处理一个值数组,并且隐式地是一个OR
操作。w6mmgewl2#
您可以从尝试下面的查询开始。这是一个非常简单的查询,可以找到
field1
比赛term set one
或者field2
比赛very different term set two
. 您不需要指定一个术语数组,因为es将在分析阶段为您提供帮助,即需要term set one
把它分解成代币term
,set
以及one
把它们和field1
. 同样,对于field2
.还要注意,我已经指定了
or
运算符,尽管它是默认值,只是为了说明and
你将来也会需要它的。试试看,让我们知道进展如何。