mongoid でタイヤ (https://github.com/karmi/tire) を使用しています。これが私のモデル定義です:
class SomethingWithTag
include Mongoid::Document
include Mongoid::Timestamps
field :tags_array, type: Array
include Tire::Model::Search
include Tire::Model::Callbacks
mapping do
indexes :tags_array, type: :array, index: :not_analyzed
end
end
ドキュメント {tags_array: ["hello world"]} があるとします。次に、次のクエリが正常に機能します。
SomethingWithTag.tire.search { filter :terms, :tags_array => ["hello"] }
SomethingWithTag.tire.search { filter :terms, :tags_array => ["world"] }
SomethingWithTag.tire.search { filter :terms, :tags_array => ["hello", "world"] }
ただし、次の場合は結果が返されません。
SomethingWithTag.tire.search { filter :terms, :tags_array => ["hello world"] }
機能させるにはどうすればよいですか?
編集: ここにテストする小さなコードがあります: http://pastebin.com/n1rUtK3e