繁体   English   中英

“最佳匹配”人名搜索/使用Sphinx搜索进行排名

[英]'best match' human name search/rank using Sphinx search

我正在尝试将预测性“最佳匹配”名称搜索功能添加到已构建的自定义CRM中,但遇到了一些问题。 我决定与Sphinx一起考虑,认为它可以立即完成我想做的事情,但是我遇到了一些问题。 我了解了狮身人面像使用的匹配模式,但是我不太确定如何获得这样的东西,例如:

如果我查询: Mike Shinoda

它应该能够拉出像这样的比赛,并由最佳比赛排名: Mike Shinoda | Shinoda, Mike | Mike Shinoji | Michael Shinoda | Shinoda, Michael | Mike James Shinoda | Mike and Ike Shinoda | Shinoda, Miles Mike Shinoda | Shinoda, Mike | Mike Shinoji | Michael Shinoda | Shinoda, Michael | Mike James Shinoda | Mike and Ike Shinoda | Shinoda, Miles

做这样的事情的最好方法是什么? 我没有与狮身人面像结婚,我只是找不到任何看起来可以做得更好的东西

我确实已经尝试过在此堆栈问题Sphinx中实施建议, 并且“您是说...吗?” 建议的想法。 它能工作吗? ,但它并没有真正的工作也很好,因为匹配模式SPH_MATCH_ANY匹配了太多的记录,并SPH_MATCH_ALL会像记录拉'andrus Cheryl'当查询是'sheryl curry' (因为所有的字母sheryl curry'andrus Cheryl'

编辑

我只索引一个字段:contact_name

首先狮身人面像不会知道迈克=迈克尔。 您必须明确地告诉它这种“等效性”-特别是具有wordforms功能:)

>因为雪莉咖喱中的所有字母都在'andrus Cheryl'中

狮身人面像不会那样做。 狮身人面像匹配整个单词。 它不执行“重排字母”匹配。

除非您已经明确实现了这一点(也许您从中得到的意思就是建议)-在这种情况下,它并不是您真正想要的。

建议返回普通的普通狮身人面像索引(无三元组),然后运行类似的查询

"^Mike Shinoda$" | "Mike Shinoda" | "^Mike Shinoda" | "Mike Shinoda$" | (^Mike Shinoda) | (Mike Shinoda$) | (Mike Shinoda) | (Mike Shinoda)

使用SPH_MATCH_EXTENDEDSPH_RANKING_WORDCOUNT

wordforms照顾迈克尔>麦克的对等物。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM