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

calebx · May 18, 2016 · Last by calebx replied at May 20, 2016 · 1964 hits

尝试 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 行数据了,再用这类外部包

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

You need to Sign in before reply, if you don't have an account, please Sign up first.