我需要帮助,在mysql全文搜索。我在找一本名为“梦想”的书。当我寻找梦想的时候
其实我是在寻找梦想,如何做第六本书到第一本。
我想忽略重复的单词,在这种情况下,梦想。
你可以搜索这里
我正以不同的标题面对这类问题。
发布于 2011-09-14 10:24:48
列与重复的搜索单词的相关性是最重要的,我看到的唯一解决方案是使用标准全文搜索执行一个联合查询,以查找与之完全匹配的内容,例如:
SELECT * FROM books
WHERE title = 'Dreams'
UNION
SELECT * FROM books
WHERE MATCH(title) AGAINST("Dreams")这将首先显示准确的匹配。
或者你可以
SELECT * FROM books
WHERE MATCH(title) AGAINST("Dreams")
ORDER BY (CASE WHEN title = 'Dreams' THEN 1 ELSE 0 END),.....发布于 2011-09-14 11:53:30
你想把确切的情况作为第一个建议吗?
按顺序尝试:
"ORDER BY ('{$str_search}' = title) DESC"这将使您搜索的确切案例搜索词首先出现。
2更多的解决办法:
"ORDER BY ('{$str_search}' LIKE title) DESC"
"ORDER BY ('{$str_search}%' LIKE title) DESC"第三种解决方案可以用来整理你的搜索词开始的所有内容。
注意:这个解决方案与当一个解决方案时的情况大致相同。
发布于 2015-09-17 23:33:30
也许已经不相关了,但是如果有人来找我,我会再次推荐在上面使用levenshtein函数来解决这个问题。有关更多信息和mysql中的完整实现,请参见下文。
https://stackoverflow.com/questions/7414229
复制相似问题