如何在不重新索引现有数据的情况下使前缀搜索有效

时间:2019-01-06 08:38:43

标签: elasticsearch autocomplete prefix-search

之前,我在执行查询时使用前缀查询实现了搜索,但是由于索引中词干的限制,出现了很多问题:-

假设我的索引名称为jaipur,并且其中包含一个字段title,该字段将根据语言分析器进行分析。

因此,如果索引用于english语言,则下面的词干将像下面那样存储

original word       stemmed form
nutritional         nutrit
suggestions         suggest
recommendation      recommend

现在使用前缀查询,当我搜索到nutritsuggest时,它会给我结果,但是只要在词干形式之后键入下一个字符
nutritisuggestio一样,我的结果消失了,因为这些标记不存在于我的倒排索引中,并且不分析前缀查询。

我阅读了很多Elasticsearch文档,似乎只有index time solution 可以解决我的问题,但缺点是它需要对整个数据重新编制索引,而我的索引中有数十亿个文档,我们希望避免重新编制索引,这也是原因之一,我们之前选择了基于前缀的解决方案

有人可以建议有其他选择吗?如果需要更多信息,请告诉我。

注意:-我正在使用ES 1.7.4版本。

0 个答案:

没有答案