1

モデルの多くのフィールドで用語を検索するために検索バーを実行したいと考えています。今のところ、私はこのコードを持っています:

@query_search = "#{params[:search]}"
products = Campaign.search query: {match: {name: @query_search}}, fields: [{owner:  @query_search}], misspellings: {distance: 2}

結果はnameフィールドでのみ機能します (正確なケースのみ)。fields: [{owner: @query_search}]変化なし。私はこのようなことをしようとしました:

products = Campaign.search query: {match: {name: @query_search, brief: @query_search}}, fields: [{owner:  @query_search}], misspellings: {distance: 2}

しかし、結果はありません。スペルミスはいずれにしても機能しません。

それで、誰かアイデアがありますか?ありがとう !

4

3 に答える 3

1

このqueryオプションは、指定した正確なクエリを使用するよう Searchkick に指示するため、他のオプションは無視されます。

于 2014-06-11T08:41:57.443 に答える
0

1 つの用語で複数のフィールドを検索するには、elasticsearch cross_fieldsまたは機能を使用する必要があります。query_string残念ながらsearchkickではサポートされていないため、自分で行う必要があります。

このスタックオーバーフローの質問に対する私の回答の例に従うことができます。

于 2015-12-14T12:05:05.927 に答える