【问题标题】:mysql full text search boolean mode with spacesmysql全文搜索布尔模式带空格
【发布时间】:2016-07-26 01:31:38
【问题描述】:

我已经选择全文搜索

SELECT * FROM datatable WHERE MATCH(field1, field2, field3, field4) 
AGAINST('C 100 330 00 75*' IN BOOLEAN MODE)

字段 2 中的 C 100 330 00 75,字段 1 中相同的数据但没有空格 C1003300075 ,在 field3 数据中,例如“here we are”或“delta star”。

为所有字段选择工作,除了字段 2 - (C 100 330 00 75)。 那么有什么问题呢?如果我在搜索之前删除空格,它将影响其他列。我需要在用户输入时进行搜索,使用空格而不是空格。

有什么建议吗? 谢谢

【问题讨论】:

    标签: mysql sql search full-text-search


    【解决方案1】:

    Boolean Full-Text Searchesno operator之前的单词意思是:
    默认情况下(当既没有指定 + 也没有指定 - 时)该词是可选的,但包含它的行的评级更高。这模仿了没有 IN BOOLEAN MODE 修饰符的 MATCH() ... AGAINST() 的行为。

    【讨论】:

      【解决方案2】:

      有两个直接的问题。默认情况下:

      • MySQL 会忽略少于三个字符的单词。
      • MySQL 将数字视为单词。

      您可以查看documentation 对 MySQL 全文搜索进行微调。在调整索引以存储所需内容后,您需要重建索引。

      【讨论】:

        猜你喜欢
        • 2012-04-20
        • 1970-01-01
        • 1970-01-01
        • 2011-03-04
        • 2010-11-24
        • 2016-04-04
        • 2015-02-14
        • 2015-05-11
        • 2011-10-30
        相关资源
        最近更新 更多