elasticsearchを使い始める前に、ページ設定とともに1つのクエリでこれが可能であるかどうかは不明です。私は2種類のインデックスを持っています:user
& blog
例のマッピング:elasticsearch検索結果(サブクエリ付き)
"mappings": {
"user": {
"properties": {
"name" : { "type": "string" }
}
},
"blog": {
"properties": {
"title" : { "type": "string" },
"author_name" : { "type": "string" }
}
}
}
}
サンプルデータ
ユーザー:
[
{"name": "jemmy"},
{"name": "Tom"}
]
ブログ:
[
{"title": "foo bar", "author": "jemmy"},
{"title": "magic foo", "author": "Tom"},
{"title": "bigdata for dummies", "author": "Tom"},
{"title": "elasticsearch", "author": "Tom"},
{"title": "JS cookbook", "author": "jemmy"},
]
私はインデックスに私が検索するように照会したいのですがblog
の場合は、一致するたびにサブクエリを実行する必要があります。
POST /test_index/blog/_search
{
"query": {
"match": {
"_all": "foo"
}
}
}
予想される(擬似)結果:たとえばここauthor_post_count
[
{
title: "foo bar",
author_name: "Jemmy",
author_post_count: 2
},
{
title: "magic foo",
author_name: "Tom",
author_post_count: 3
}
]
は、ユーザーが作成したblog
投稿数です。それはカウントの代わりにそれらのブログの投稿を返すことができればそれも素晴らしいだろう。これは可能ですか?多分私は正しい言葉を使っていませんが、私の質問がはっきりしていることを願っています。
私は要件を理解しているとは思わない。集計については言及していますが、クエリサンプルにはそのようなことはありません。また、いくつかの文書の例を提供し、一致させたいものと、その例のように結果をどのように表示するかは、多分よいでしょう。 –
@AndreiStefan質問を更新しました。おそらく集約は間違った用語です。また、照会サンプルは一致部分です。私の質問は、結果セットに 'author_post_count'を埋め込む方法です。 – SamSerious