Rails 4アプリでsearchkickでelasticsearchを使用しています。
クエリのスペルが間違っている場合にユーザーに正しいスペルを推奨する「もしかして」機能を実装しました。
提案された単語をクリック可能なリンクに変換し、代わりにそれを検索する最良の方法は何ですか? そうすることに関するドキュメントを見つけるのに苦労しています。
「もしかして」の提案を表示する私のビューのコードは次のとおりです。
Did you mean: <strong><%= @articles.try(:suggestions).join' ' %></strong>
そして、articles_controller での私の検索方法は次のとおりです。
@articles = Article.search(params[:q], misspellings: {edit_distance: 2}, suggest: true, fields: ["specific^10", "title", "aka", "category", "tags_name", "nutritiontable"], boost_where: {specific: :exact}, page: params[:page], per_page: 12)
アプリの検索に使用するフォームは次のとおりです。
<div class="searchbar" id="sea">
<%= form_tag articles_path, method: :get do %>
<p>
<%= text_field_tag :q, params[:q], id:"complete", name:"q", style:"width:550px; height:34px;", :autofocus => true, class: "form-control", placeholder:"Search... " %><br>
<%= submit_tag "Let's Find Out!", :name => nil, class: "btn btn-default btn-lg", style: "margin-right: 10px;" %>
<%= link_to "Most Popular", articles_path(:most_popular => true), class:"btn btn-default btn-lg" %>
</p>
<% end %>
</div>