【问题标题】:Give some fields more relevance and sort by relevance in mysql full text search在mysql全文搜索中给一些字段更多的相关性和相关性排序
【发布时间】:2011-06-13 14:54:07
【问题描述】:

我在帖子表中有两个字段 - post_titlepost_content。现在我使用标准的全文搜索来匹配两个字段的一些关键字。我需要让标题字段比内容字段更具相关性,而不是按相关性对结果进行排序......

实现这个目标的 mysql 语法是什么样的?我使用 mysql 5.1

【问题讨论】:

    标签: mysql full-text-search relevance


    【解决方案1】:

    首先,创建三个 FULLTEXT 索引:

    * one on the title column
    * one on the body column
    * one on both title and body columns
    

    然后,按以下方式构建您的查询:

    SELECT field1, field2, field3, title, body,
    MATCH (title) AGAINST ('word_to_search') AS rel_title,
    MATCH (body) AGAINST ('word_to_search') AS rel_body
    FROM table_to_use
    WHERE MATCH (title,body) AGAINST ('word_to_search')
    ORDER BY (rel_title*2)+(rel_body)
    

    这将使标题的相关性比正文高 2 倍。

    当您需要允许对内容进行排序时,这非常方便,例如,按标签(用户不会查看),因为它允许您在幕后调整结果。

    【讨论】:

    • 给你一个大拇指..但我仍然不喜欢 3 个索引......只是不喜欢它......
    • 这个手术的费用是多少?我们一次又一次地匹配!
    • 嗨 Pham,可以说说你为什么不喜欢它,如果喜欢,那么如何改进它?
    • 嗨,Raheel,因为一切都在数据库中完成,所以成本很高。您可以获取所有数据并在代码中执行此操作。您有什么改进建议吗?
    猜你喜欢
    • 1970-01-01
    • 2012-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    相关资源
    最近更新 更多