【问题标题】:MySQL Full text suffix search (boolean mode) -(*apple)MySQL全文后缀搜索(布尔模式)-(*apple)
【发布时间】:2016-12-03 10:12:45
【问题描述】:

在布尔模式下apple* 将找到apple, apples, applestore。但它不会找到我(假词)Mapple, Trapple。所以我尝试使用*apple,但这不起作用。

是否无法通过全文搜索找到以 apple 结尾的单词?还是我在文档中遗漏了什么?

【问题讨论】:

    标签: mysql


    【解决方案1】:

    虽然 MySQL 全文搜索不允许您按后缀进行搜索,但如果您可以接受一些存储开销,则有一种解决方法。您只需要一个额外的列来保留原始列的反转字符串值,还需要一个新列的附加全文索引。然后您的查询将按以下方式显示:

    SELECT * FROM Tbl
    WHERE MATCH (Word_reversed) AGAINST (REVERSE('*apple') IN BOOLEAN MODE)
    

    请记住,您还必须通过更新/插入触发器或手动维护其他字段。

    【讨论】:

      【解决方案2】:

      试试这个

      SELECT * From Table
      WHERE Word like '%apple'
      

      【讨论】:

      • 你是想告诉我在全文搜索中没有这样的东西吗?刚刚测试的 '%apple' 不起作用,但现在使用 '%apple%' 的结果还不错。不过必须测试其他一些情况。
      • 我不确定FULL TEXT中是否有这样的东西
      • @Tessmore:不,不可能使用布尔全文搜索(或者自然语言全文搜索)进行后缀搜索。 The * operator only works for prefixes,如该运算符的文档中所述。
      • 好的,感谢您指出这一点。我认为这主要是个问题,因为它是关于荷兰语的,但是唉。也许你知道我可以研究的方向?(荷兰问题,因为英语只是在单词之间使用空格!)
      猜你喜欢
      • 2012-04-20
      • 1970-01-01
      • 2016-07-26
      • 2011-03-04
      • 2015-02-14
      • 2015-05-11
      • 2011-10-30
      • 2020-03-28
      • 2013-02-27
      相关资源
      最近更新 更多