弹性搜索:仅当查询中包含来自字段的所有单词时,才按分析字段查找文档

时间:2016-09-29 05:03:59

标签: elasticsearch lucene full-text-search

让我们考虑以下案例 - 我列出了一些以弹性为索引的视频标题和视频类别。

任务是将视频与类别匹配。

我在索引中有三个类别:

{
  "category" : "rock climbing"
  ...
},

{
  "category" : "rock and roll"
  ...
}

{
  "category" : "outdoor"
  ...
}

"category"字段映射到已分析的字符串并使用多个分析器。 因此,第一个文档的倒排索引为"rock, climb",第二个为"outdoor",最后一个为"rock, roll"

现在,我想查找标题为"outdoor rock climbing in national park"

的视频的所有可用类别

所以我需要收到"rock climbing""outdoor"

我正在尝试运行以下查询

{
 "query": {
   "match": {
     "category": "outdoor rock climbing in national park"
   }
 }
}

它返回所有文档,因为它按"outdoor, rock and climb"的出现创建了文档。

但是我希望查询只返回查询包含所有反向索引词的文档。

分析查询:outdoorrockclimbnationpark

预期结果:outdoorrock+climb

我是弹性搜索的初学者,请帮忙。

提前致谢!

0 个答案:

没有答案