私のモデルには、タグの配列であるタグフィールドがあります。私が抱えている問題は、タグをキーワードのように機能させたいということですが、ESは、ファセットの目的でタグをスペースに分割しています。
マッピングは次のとおりです。
indexes :tags, type: :array
人気のあるタグのクエリは次のとおりです。
tire.search do
facet 'tags' do
terms :tags, size: 100
end
end
結果は個々の単語になります。たとえば、["retro music"、 "awesome"]のタグが付けられたレコードには、3つの別々のタグが付けられます。同様に、「retro music」(must { term 'tags', options[:tag] }
)を検索するクエリを実行すると失敗しますが、「retro」または「music」のクエリは成功します。ここでの望ましい動作は、タグがアトミックである必要があるため、「レトロミュージック」(または「素晴らしい」)タグ検索のみが成功することです。