次のサンプル mappipng があります。
{ "本" : { "プロパティ" : { "作者": { "タイプ": "文字列" }, 「タイトル」:{「タイプ」:「文字列」}、 "レビュー" : { "プロパティ" : { "url": { "タイプ": "文字列" }, 「スコア」:{「タイプ」:「整数」} } }、 "チャプター": { "include_in_root": 1, 「タイプ」:「入れ子」、 "プロパティ" : { 「名前」:{「タイプ」:「文字列」} } } } } }
レビューの数、つまり「レビュー」配列の長さに関するファセットを取得したいと思います。たとえば、私が必要とする口頭での結果は次のとおりです。
私は次の統計的ファセットを試しています:
{ 「クエリ」: { "match_all": {} }、 "ファセット": { "stat1": { "statistical": {"script": "doc['reviews.score'].values.size()"} } } }
しかし、それは失敗し続けます:
{ "エラー": "SearchPhaseExecutionException[フェーズ [query_fetch] の実行に失敗しました。完全な失敗; shardFailures {[mDsNfjLhRIyPObaOcxQo2w][facettest][0]: QueryPhaseExecutionException[[facettest][0]: query[ConstantScore(NotDeleted(cache(org.elasticsearch) .index.search.nested.NonNestedDocsFilter@a2a5984b)))],from[0],size[10]: クエリに失敗しました [メイン クエリの実行に失敗しました]]; ネストされた: PropertyAccessException[[エラー: アクセスできませんでした: レビュー; でクラス: org.elasticsearch.search.lookup.DocLookup] [近く: {... doc[reviews.score].values.size() ....}] ^ [行: 1、列: 5]]; }]", 「ステータス」:500 }
どうすれば目標を達成できますか?
エラスティックサーチのバージョンは 0.19.9 です。
ここに私のサンプルデータがあります:
{ "作者" : "マーク・トウェイン", "title" : "トム・ソーヤーの冒険", "レビュー" : [ { "url" : "amazon.com", 「スコア」:10 }、 { "url" : "www.barnesandnoble.com", 「スコア」:9 } ]、 "章" : [ { "名前" : "第 1 章" }, { "名前" : "第 2 章" } ] } { "作者" : "ジャック・ロンドン", "title" : "野生の呼び声", "レビュー" : [ { "url" : "amazon.com", 「スコア」:8 }、 { "url" : "www.barnesandnoble.com", 「スコア」:9 }、 { "url" : "www.books.com", 「スコア」:5 } ]、 "章" : [ { "名前" : "第 1 章" }, { "名前" : "第 2 章" } ] }