個々のトークンではなく、用語全体でバケットを分割するElasticsearch用語集を書くにはどうすればよいですか?例えば、私は州によって集計したいのですが、期待通りにバケツなどの個々のバケットではなく、ニューヨークとニュージャージー州とカリフォルニア州のように、以下の戻り新しい、ニューヨーク、ニュージャージー、カリフォルニア:アレイ内の文字列による弾性検索用語集
curl -XPOST "http://localhost:9200/my_index/_search" -d'
{
"aggs" : {
"states" : {
"terms" : {
"field" : "states",
"size": 10
}
}
}
}'
私のユースケースここに記載されているものと同じです https://www.elastic.co/guide/en/elasticsearch/guide/current/aggregations-and-analysis.html ただ1つの違いがあります: 私の場合、都市フィールドは配列です。
例オブジェクト:
{
"states": ["New York", "New Jersey", "California"]
}
提案された解決策は、(not_analyzedとしてフィールドをマッピング)アレイに動作しないと思われます。
マイマップ:
{
"properties": {
"states": {
"type":"object",
"fields": {
"raw": {
"type":"object",
"index":"not_analyzed"
}
}
}
}
}
私は「文字列」で「オブジェクト」を置き換えるためにしようとしたが、これはどちらか動作していません。
は、あなたの答えのためにどうもありがとうございます、あなたは正しいですが、私の質問は、実際に '.raw'が不足しています。それは、私が非常に多くの異なるマッピングと検索の組み合わせを試して、それを投稿したためです。 私の本当の問題は、elasticsearch-transport-couchbaseプラグインを使用して私のドキュメントをElasticsearchにインポートし、プラグインが私のドキュメント構造を変更し、それを '' doc ''属性で囲んでいることです。あなたの答えのおかげで、私は手作業で文書を追加しました。それはうまくいきました。それが、他の文書の周囲の "doc"属性を検出した方法です。 – Marieke