'best match' 使用狮身人面像搜索的人名搜索/排名



我正在尝试将预测性的"最佳匹配"名称搜索功能添加到我构建的自定义CRM中,但我遇到了一些问题。我决定选择狮身人面像,认为它可以开箱即用地做我想要的东西,但我遇到了一些问题。我了解狮身人面像使用的匹配模式,但我不确定如何获得这样的东西,例如:

如果我查询:Mike Shinoda

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

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

我已经尝试实现这个堆栈问题狮身人面像中的建议,"你的意思是......?"的建议想法。它会起作用吗?,但它并没有真正工作得太好,因为匹配模式SPH_MATCH_ANY匹配太多记录,并且SPH_MATCH_ALL会在查询'sheryl curry'时拉入像'andrus Cheryl'这样的记录(因为sheryl curry中的所有字母都在'andrus Cheryl'

编辑

我只索引一个字段:contact_name

首先,

狮身人面像不会知道迈克=迈克尔。您必须明确告诉它这样的"等效性" - wordforms功能特别适用于该:)

>因为谢丽尔·库里的所有字母都在"安德鲁斯·谢丽尔"中

狮身人面像不会那样做。狮身人面像匹配整个单词。它不进行"重新排列的字母"匹配。

除非您专门实现了它(也许您从"您的意思是建议"中得到了) - 在这种情况下,它并不是您想要的。

建议回到普通的正常狮身人面像索引(没有三元组),然后运行类似

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

使用SPH_MATCH_EXTENDEDSPH_RANKING_WORDCOUNT

wordforms照顾迈克尔>迈克等效性。

最新更新