2017-08-03 105 views
0

我想在MySQL中搜索类似“type”的工程师,那么它也应该返回结果如“Engine”或“Eng”或“Engineers”。 是否有可能使用MySQL或有任何其他工具可以做到这一点?在mysql中搜索的权重

回答

0

这部分可以通过使用搜索词的词干版本来覆盖。

目前不支持,但可能集成在未来版本的MySQL服务器中。任务WL#2423

可以选择使用像mnoGoSearch这样的MySQL插件。

0

是的。您可以以相反的方式使用MySQL LIKE运算符。 这里COLUMNNAME是你要搜索

SELECT * FROM test WHERE ('engineer' LIKE CONCAT(columnName,'%')) OR ('engineer' LIKE CONCAT(LOWER(columnName),'%')); 

在这里,如果你不想忽略大小写,您可以使用查询高达或列的名称。如果您想输入为ENGINEER,则可以使用与LOWER相同的UPPER。

0

可与狮身人面像做(你已经标记了这个问题的狮身人面像)

形态处理器包括词干, http://sphinxsearch.com/docs/current.html#conf-morphology

将使engineer匹配engineers

它直接难道不应对engineer匹配eng这是更复杂的寻找有效的'短'版本的某种方式。可以使用字形来创建它们的列表,例如eng > engineer。不确定一个通用的解决方案是否可能,因为并非所有的'短'形式都会被批准,例如,如果'健美运动员',匹配'身体'可能不起作用,即使开始相同的非常不同的含义。