当前位置:  开发笔记 > 后端 > 正文

mysql全文搜索为空

如何解决《mysql全文搜索为空》经验,为你挑选了1个好方法。

我在带有MySQL后端的rails上使用ruby.我有一个名为notes的表,这是我用来创建它的迁移:

def self.up
  create_table(:notes, :options => 'ENGINE=MyISAM') do |t|
    t.string :title
    t.text :body

    t.timestamps
  end

  execute "alter table notes ADD FULLTEXT(title, body)"

end

我想对标题和正文字段进行全文搜索.问题是全文搜索总是空回来.例如,如果我将此行添加到数据库中:Title: test, Body: test.然后我运行这个查询SELECT * FROM notes WHERE MATCH(title, body) AGAINST('test').它返回一个零集.任何人都可以告诉我我做错了什么以及如何使全文搜索工作?



1> Adam Bellair..:

我只是在这里猜测,但文档说明:

自然语言搜索将搜索字符串解释为自然人类语言(自由文本中的短语)中的短语.没有特殊的运营商.禁用词列表适用.此外,50%或更多行中出现的单词被认为是常见的并且不匹配.如果给出IN NATURAL LANGUAGE MODE修改器或者没有给出修饰符,则全文搜索是自然语言搜索.

因此,如果只有一行,并且它包含'test',则'test'存在于超过50%的行中,因此不被视为匹配.也许试试:

SELECT * FROM notes WHERE MATCH(title, body) AGAINST('test' IN BOOLEAN MODE)

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有