私はelasticsearchインデックス「イベント」を持っています - そのインデックス内にタイプ「イベント」があります。
イベントオブジェクトには、「名前」を含むさまざまなプロパティを持つ「会場」があります。したがって、単純化された構造は次のとおりです。
event {
venue {
name: "foo"
}
}
今、私はelasticsearch-railsを使用しています-イベントのリスト、クエリDSLを使用した検索などはすべて正常に機能しますが、特定の名前の会場ですべてのイベントをリストしたい場合はどうすればよいですか?
私は、このようなことが可能であると仮定しています:
Event.search "{ 'query': { 'match': { 'venue.name': '#{params[:v]}' }}}
しかし、私は次のエラーが発生します:
Elasticsearch::Transport::Transport::Errors::BadRequest
この種のものがたくさん含まれている実質的なスタック トレースが続きます。
Was expecting one of:\n \"]\" ...\n \"}\" ...\n ];
不正な形式の json を示唆する ParseExceptions - しかし、その理由はわかりません。
単純な検索
Event.search '{"query" : { "match_all" : {} }}'
正常に動作するので、クエリの構造が間違っているだけだと思います。
一重引用符と二重引用符を切り替えてみましたが、このページの例をより厳密にフォローしてみました:
https://www.elastic.co/guide/en/elasticsearch/guide/current/denormalization.html
他の誰かがこの状況に遭遇したことがあり、ルビーでこれを機能させる方法を提案できるかどうか疑問に思いました。