0

そう、

以下のようなテンプレートを作成するとき、私は古い 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

4

0 に答える 0