入力的 keyword 在多个字段模糊匹配,入力的 keyword 可以带空格。 比如 keyword="a b" event 表里有 tite 和 body 两字段
SELECT *
FROM events
WHERE title LIKE '%a%' OR title LIKE '%b%' OR body LIKE '%a%' OR body LIKE '%b%'
网上查找后发现 solr 全文检索功能完善比自己 or 条件更好,所以 按照 github 上教程使用 solr 但返回结果于预期不一致。 使用的 gem
gem 'sunspot_rails'
gem 'sunspot_solr'
gem 'progress_bar'
event model
class Event < ActiveRecord::Base
searchable do
text :title, :body
end
end
db 数据
sunspot:solr:start sunspot:solr:reindex 都已运行
从结果来看入力'ss'没有返回结果,当入力's'只返回最后一条结果。
如果按上面 sql 文 执行 'ss'返回 1 一条结果, 's'返回 3 条结果