そのモデルに特に関連するタイヤインデックスのモジュールを作成し、モデルに含めます。セッションはモデルとの関連付けのみであるため、その参照はelasticsearchに送信されるドキュメントにあります。ドキュメントのjsonをタイヤインデックスモジュールのelasticsearchに渡したため、このようにモデルドキュメントのセッションドキュメントをマージする必要があります
def to_model_json
self.document.merge({"sessions" => sessions.as_json}).to_json
end
このメソッドは、jsonのドキュメントをタイヤを介してelasticsearchに渡し、セッションがドキュメントにマージされます。
タイヤインデックスモジュールで、フィルタークエリを実行するためにタイヤ検索オブジェクトに渡すことができるインデックス名を指定します
次に、タイヤ検索オブジェクトを作成します
search_object = Tire::Search::Search::new(Model.index_name, other attributes)
https://github.com/karmi/tireから渡すことができる他の属性を確認できます
次に、このように検索メソッドを実行すると、目的の結果が得られます
search_object.filter :range, 'sessions.starts_on' => {:gte => start_date,
:lte => ends_on}