作用:Intelligent search made easy with Rails and Elasticsearch
安装和启动
#gemfile
gem 'searchkick' #需要依赖elasticsearch,会在gemfile.lock中自动生成
使用
#假设对article这个model使用
class Article < ApplicationRecord
searchkick
end
#rails c中建立索引
Article.reindex
#controller中进行使用
@articles = Article.search("demo", fields: [:name, :brand]) #第一个是索引的值,第二个是索引的字段
#典型的view
<%= form_tag(articles_path, method: :get, class: "form-inline", role: 'search') do %>
<div class="input-group">
<%= text_field_tag :term, params[:term] %>
<div class="input-group-btn search-panel">
<%= submit_tag 'Search', name: nil, class: "btn btn-default" %>
</div>
</div>
<% end %>
#典型的controller
def index
search = params[:term].present? ? params[:term] : nil
@articles = if search
Article.search(search, fields: [:title, :content])
else
Article.all
end
end