elasticsearch怎么处理一些特殊含义的关键字("面"、"油"之类的)?

比如单独搜索“面”这个关键字,想获得的是面条、方便面这些,不想获得桌面显示器啊、洁面乳啊之类的,基于elasticsearch要怎么处理呢?

阅读 2.5k
3 个回答

理论上来说,输入面,返回桌面显示器啊,洁面乳是正确的,如果想要更精准的答案,那只能在搜索条件上做文章。
比如可以指定搜索值为方便面,minimum_should_match参数设为100%,这样就肯定返回对应的内容了,或者也可以在页面搜索栏指定类型。

增加一个字段,用来区分是否物品类型如“食物”,搜索时加上条件
至于能否用程序对词汇归类,哪是另一个问题啦

正常情况下,商品应该都是有分类的,比如米面油之类的应该属于食品,在搜索单个字面、油的时候,可以默认增加一个一级类目,这样就不会搜索到洁面乳之类的了,也不会影响用户搜其它更加详细的内容。