そう、
以下のようなテンプレートを作成するとき、私は古い multi_field タイプを使用しています。
"field_a":
{
"type": "multi_field",
"fields":
{
"searchable": {
"index": "analyzed",
"type": "string"
},
"field_a": {
"index": "not_analyzed",
"type": "string"
}
}
}
これは問題なく機能します。クエリを実行するときは、「field_a.raw」などを忘れずに「field_a」で用語集約を行うだけです。
ただし、これをフィールド要素のみを使用する新しい構文に変更すると、これは機能しなくなります。以下のテンプレートを使用して用語の集計を行うと、用語が分割され、元の値が得られません。したがって、フィールドに「フィールドをテストする」という値が含まれている場合、「フィールドをテストする」を 1 つの用語として返し、「テストする」、「a」、「フィールド」を個々の用語として返さないことを期待します。これは元のテンプレートを使用して返されるものであることに注意してください。
"field_a":
{
"type": "string",
"fields":
{
"searchable": {
"index": "analyzed",
"type": "string"
},
"field_a": {
"index": "not_analyzed",
"type": "string"
}
}
}
「インデックス」:「not_analyzed」を「タイプ」のすぐ下の初期フィールドマッピングに移動しようとしましたが、インデックスを作成しようとすると、「不正なフィールド[インデックス]、フィールド内でのみフィールドを指定できます」というエラーが表示されますドキュメント。
私の質問は、最初のフィールドを not_analyzed にしてから、検索可能な追加のフィールドを作成する方法はありますか? それとも、生のフィールドと検索可能なフィールドの 2 つの個別のフィールドを含めるようにすべてを変更する必要がありますか?
私は使っている
ネスト: 1.7.2 ES: 1.5.2