次のサンプル 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 章" }
]
}