mysql搜索顶级匹配应该是第一位的

时间:2010-07-28 16:50:43

标签: mysql full-text-search

在比赛中 - 反对我得到正确的结果,没有问题,但我想要的是结果组合。

对于“计算机图形学”,我得到的结果是“+计算机+图形”,因为“计算机”单独的结果和“计算机图形”结果和“图形”结果等。

这里我首先想要“计算机图形”结果,然后是另一个单词匹配结果。我怎样才能把它们带到第一位。请帮帮我一下

4 个答案:

答案 0 :(得分:1)

这不能在MySQL全文搜索中完成,没有一点箍跳。

您基本上需要运行两次搜索以获得所需的结果。首先,使用双引号运行boolean fulltext search以包含要搜索的确切短语。布尔模式下的双引号将返回仅精确匹配。获得这些结果后,your normal natural-language search。这是正常的,自然的语言搜索,让您在部分匹配时遇到麻烦。您需要手动组合两个搜索结果。

虽然MySQL全文对于简单的搜索需求来说是不错的,但它并不是一个很棒的搜索解决方案。考虑具有更强大功能的内容,例如SphinxSolr / Lucene,甚至是ElasticSearch之类的内容。

答案 1 :(得分:1)

您应该按相关性排序:搜索您在WHERE中使用的相同查询,调用是RELEVANCE,然后按该字段排序。

SELECT MATCH('...')AGAINST('...')为Relevance FROM表WHERE MATCH('...')反对('...'IN 布尔模式) ORDER BY Relevance DESC

答案 2 :(得分:1)

假设我们正在讨论全文索引:

... ORDER BY MATCH('computer graphics') AGAINST (some,columns) DESC;

答案 3 :(得分:0)

表格中的条目

什么是电脑? 什么是计算机上的图形? 什么是计算机图形学? 什么是图形?

QUERY:选择*,MATCH(field1,field2)AGAINST(“+计算机+图形”IN BOOLEAN模式)作为$ table的结果,其中MATCH(field1,field2)AGAINST(“+计算机+图形”在BOOLEAN模式中) ORDER BY结果ASC

IT返回确切的结果,有些位于中间,有些位于第一位。

像  什么是计算机图形学?  什么是计算机上的图形?  什么是电脑?  什么是图形?

如何纠正......