之前,我在执行查询时使用前缀查询实现了搜索,但是由于索引中词干的限制,出现了很多问题:-
假设我的索引名称为jaipur
,并且其中包含一个字段title
,该字段将根据语言分析器进行分析。
因此,如果索引用于english
语言,则下面的词干将像下面那样存储
original word stemmed form
nutritional nutrit
suggestions suggest
recommendation recommend
现在使用前缀查询,当我搜索到nutrit
或suggest
时,它会给我结果,但是只要在词干形式之后键入下一个字符
像nutriti
或suggestio
一样,我的结果消失了,因为这些标记不存在于我的倒排索引中,并且不分析前缀查询。
我阅读了很多Elasticsearch文档,似乎只有index time solution 可以解决我的问题,但缺点是它需要对整个数据重新编制索引,而我的索引中有数十亿个文档,我们希望避免重新编制索引,这也是原因之一,我们之前选择了基于前缀的解决方案。
有人可以建议有其他选择吗?如果需要更多信息,请告诉我。
注意:-我正在使用ES 1.7.4版本。