ElasticSearch / Lucene-将斜率应用于NOT

时间:2018-11-08 23:19:26

标签: elasticsearch lucene elasticsearch-5

我在ElasticSearch中有一个字段,它是一个字符串数组。

我正在使用position increment gapphrase_slop在该数组中搜索特定短语。

初始匹配工作正常。但是,我无法弄清楚如何通过特定的字段值取反。

示例:

索引字段:['a b 1', 'c d', 'e f 3']

基本词组匹配:

  • "a c"不匹配(期望的行为)
  • "b a"phrase_slop足够高(期望的行为)时匹配。

否定:

  • "a b" NOT 1 NOT 3不匹配(期望的行为)
  • `“ a b NOT 1 NOT 3”与任何内容都不匹配(不需要的行为)

有什么方法可以将短语匹配与短语倾斜和基于 position 取反吗?

当前解决方案

对于我的特定用例,我认为我找到了一种解决方法:

更多详细信息:

  • NOT需要使用的值数量有限。
  • 与问题示例不同的是,包含NOT值的数组值数量很少。
  • 有时我不需要添加NOT。但是,这些时间应该从用户输入中清除。

因此,我的解决方案是使用2个字段:一个带有我想NOT反对的数组值,另一个没有。

我仍然很好奇是否有一个更简单/更通用的解决方案,而不必拆分为两个字段。

0 个答案:

没有答案