发布于 2018-11-12 06:46:52
我有一个类似的要求,但在我的应用程序自动完成是不同的主要搜索。当用户键入时自动完成,当用户按enter键时发生主搜索.
在我们的应用程序中,自动完成搜索结果和主要搜索结果是不同的,因为在您的情况下,这是一个要求。这也是一种普遍的做法。
如何解决这个用例:-
示例 1。如果标题字段包含foo、bar、hello、world等前缀搜索,则会为f、fo带来结果,而不是oo。如果您希望oo是可搜索的,那么您需要使用两个不同的字段进行自动完成和主搜索,这是唯一的解决方案。否则,只需在自动完成的情况下将查询类型更改为前缀,在这种情况下,索引大小也会非常小。我们做了一些测试,如果我们使用的边缘-N克令牌,然后它是增加我们的索引大小翻倍,这不是我们的选择,因为我们有非常大的索引。
编辑如果您想要一个子字符串搜索,对于术语runni,希望标题New Balance Running Shoes应该出现在搜索结果中,那么我建议您创建两个字段,如title_autocomplete,它使用edge n-gram分析器,用于自动完成查询,标题使用其他分析器,如标准或其他解决主要搜索用例的方法。
https://stackoverflow.com/questions/53255916
复制相似问题