在比赛中 - 反对我得到正确的结果,没有问题,但我想要的是结果组合。
对于“计算机图形学”,我得到的结果是“+计算机+图形”,因为“计算机”单独的结果和“计算机图形”结果和“图形”结果等。
这里我首先想要“计算机图形”结果,然后是另一个单词匹配结果。我怎样才能把它们带到第一位。请帮帮我一下
答案 0 :(得分:1)
这不能在MySQL全文搜索中完成,没有一点箍跳。
您基本上需要运行两次搜索以获得所需的结果。首先,使用双引号运行boolean fulltext search以包含要搜索的确切短语。布尔模式下的双引号将返回仅精确匹配。获得这些结果后,your normal natural-language search。这是正常的,自然的语言搜索,让您在部分匹配时遇到麻烦。您需要手动组合两个搜索结果。
虽然MySQL全文对于简单的搜索需求来说是不错的,但它并不是一个很棒的搜索解决方案。考虑具有更强大功能的内容,例如Sphinx,Solr / 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返回确切的结果,有些位于中间,有些位于第一位。
像 什么是计算机图形学? 什么是计算机上的图形? 什么是电脑? 什么是图形?
如何纠正......