新手问题 MySQL FULLTEXT MATCH 在 Rails 中怎么搞?

calebx · 2016年05月18日 · 最后由 calebx 回复于 2016年05月20日 · 1980 次阅读

尝试 InnoDB 的 fulltext index,来替换 SQL 语句中得 LIKE %query% (先不用 solr 之类的第三方引擎) 并没找到很活跃的 gem 包

直接用 LIKE 检索似乎在小数据里面没什么问题,3w 数据了,1000 次,大概 1 秒左右 加个 InnoDB FULLTEXT,对于中文检索来说,能快很多嘛?MATCH () AGAINST () IN BOOLEAN MODE 在中文环境 也是用 boolean mode?

我的期待: migration 里面加

add_index :users, :name,  name: 'name_idx',  type: :fulltext 
add_index :users, :title,  name: 'title_idx',  type: :fulltext 

User.modal 里面加

def self.search
  # TODO?
end

就可以使用:

User.search([:name, :title], '大人物')

有哪位大人物跑过类似的 benchmark 求心得。

多了用 es?

#1 楼 @realwol hm,打算超过 1000w 行数据了,再用这类外部包

似乎应该被人顶一下吧。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号