首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql全文搜索为空

问mysql全文搜索为空
EN

Stack Overflow用户
提问于 2008-12-16 14:00:21
回答 2查看 1.2K关注 0票数 0

我正在使用带有MySQL后端的ruby on rails。我有一个名为notes的表,下面是我用来创建它的迁移:

代码语言:javascript
复制
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')。它返回一个nil集。谁能告诉我我做错了什么,以及如何让全文搜索工作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-16 14:13:05

我在这里只是猜测,但文档中写道:

自然语言搜索将搜索字符串解释为自然人类语言中的短语(自由文本中的短语)。没有特殊的运算符。停用词列表适用。此外,出现在50%或更多行中的单词被认为是常见的,并且不匹配。如果给定IN natural language模式修饰符或未给定修饰符,则全文搜索是自然语言搜索。

因此,如果只有一行,并且包含“test”,则“test”出现在超过50%的行中,因此不被视为匹配。也许你可以试试:

代码语言:javascript
复制
SELECT * FROM notes WHERE MATCH(title, body) AGAINST('test' IN BOOLEAN MODE)
票数 7
EN

Stack Overflow用户

发布于 2008-12-19 16:35:20

虽然这可能没有回答您的特定问题,但我会继续使用Ferret或Solr作为搜索引擎,特别是在涉及大量文本的情况下。这两个都非常容易设置和强大的引导。Ultrasphinx也是另一种选择。

使用RoR,我通常不会因为试图以一种特定的方式让某些东西工作而陷入困境。这一切都是关于敏捷的;)你看。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/371372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档