假设我们使用edismax,并且我们的用户在搜索框中输入模型号和类型小部件abc12x时出错。我们在product_name上匹配所有三个文档,但在model_number上没有匹配,尽管文档1的匹配非常接近。
处理这种情况的最佳方法是什么,这样我们就可以让用户知道他们的model_number并不是完全匹配的,但是医生1可能就是他们想要的吗?模糊搜索( etc 12x~)显然将处理这一优雅,但我们不知道它将需要提前,我们也不想使用它任性,只是最终损害搜索相关性,性能等。
可能是个基本的问题但对Solr来说是个新问题。谢谢。
发布于 2014-06-19 11:16:39
你的指数会大得多,但N-克是获得部分匹配的好方法。对于您的场景,边N-g可以工作。
发布于 2014-06-20 07:33:57
可以向术语中添加字符邻近修饰符,以便在查询时处理此问题:
q={!edismax}widget~3 abc12x~3这将在提供的搜索项的编辑距离中找到索引中的术语。这也有利于将查询术语'acb123‘与索引术语’abc123 123‘相匹配。插入或删除一个字符是每一个编辑,交换两个字符是两个编辑。
https://stackoverflow.com/questions/24296760
复制相似问题