禁用Elasticsearch中字符串中数字的模糊搜索

7
我想要实现 Elasticsearch 来搜索产品,但有些产品名称包含数字。我使用模糊搜索来方便用户,但我不希望数字被模糊搜索到。我能否只禁用数字的模糊搜索,而对字符串中的其他字符使用模糊搜索呢?
另外,Elasticsearch 是否适用于我的需求?
例如,在搜索电视或显示器时,当我搜索“制造商 TV 55 英寸”时,我不希望“制造商 TV 65 英寸”在结果中出现,至少不在前10个中。

我现在也有同样的需求,不确定如何解决它。 - Karthikeyan
你找到解决方案了吗? - Marium Malik
@MariumMalik 不,我没有。我仍然对解决方案感兴趣,但我并没有积极寻找。 - Jimmy Garpehäll
我正在使用PHP,所以我将数字分开并从中去除了模糊性。在Elasticsearch方面没有找到任何解决方案。 - Marium Malik
1个回答

1
您可以检查搜索字符串是否为数字。在C#中:
bool searchStringIsNumeric = int.TryParse(searchString, out int n);

在Elastic Search中你可以这样做:(在这里使用nest客户端)
.Fuzziness(searchStringIsNumeric ? Fuzziness.EditDistance(0) : Fuzziness.AutoLength(4, 7))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接