如何在ElasticSearch中执行部分匹配查询?

时间:2017-12-05 16:23:51

标签: ruby-on-rails ruby elasticsearch

我一直在尝试在ElasticSearch中执行部分匹配查询但尚未成功(尽管我试图在SO中遵循类似问题的说明)。

我有一个包含5个字段的索引:

author_name, title, content, chapter_name, email

理想情况下,我想搜索一个术语并让它找到结果,只要它部分匹配任何这些字段。

以下数据:

{
  "author_name": "John Doe",
  "title": "A Nice Summer",
  "content": "It was a nice summer back in 1969",
  "chapter_name": "The 60s",
  "email": "johndoe@email.com"
 }

如果我查询Doe196960sit was

,我应该得到它

(请注意上一学期的空格。我也遇到过空格问题)

也许我只是在构建查询时使用了错误的元素

1 个答案:

答案 0 :(得分:0)

我有完全相同的问题,ElasticSearch官方文档中的以下页面很好地解释了如何实现这一目标:

Ngrams for Partial Matching

该页面链接到下一页,该页面提供了如何实现所需目标的绝佳示例:

Ngrams for Compound Words

这些链接都是ES文档以下章节的一部分:

Partial Matching