2017-01-12 13 views
0

私は弾性検索を使用して検索フィルタを作成していますが、値を繰り返さずに "cambio"列のデータベースに保存されている値をすべて検索する必要があります。 "マニュアル・デ・5 marchas" または "マニュアル・デ・6 marchas" を 弾性検索で集計を使用する方法

は私がすべて保存された値を戻すには、このクエリを作成しました....::次のように

値が保存されている

GET /crawler10/crawler-vehicles10/_search 
{ 
    "size": 0, 
    "aggregations": { 
    "my_agg": { 
     "terms": { 
     "field": "cambio" 
     } 
    } 
    } 
} 

しかし、返された値を実行すると、次のようになります。

"aggregations": { 
     "my_agg": { 
     "doc_count_error_upper_bound": 2, 
     "sum_other_doc_count": 2613, 
     "buckets": [ 
      { 
       "key": "de", 
       "doc_count": 2755 
      }, 
      { 
       "key": "marchas", 
       "doc_count": 2714 
      }, 
      { 
       "key": "manual", 
       "doc_count": 2222 
      }, 
      { 
       "key": "modo", 
       "doc_count": 1097 
      }, 
      { 
       "key": "5", 
       "doc_count": 1071 
      }, 
      { 
       "key": "d", 
       "doc_count": 1002 
      }, 
      { 
       "key": "n", 
       "doc_count": 1002 
      }, 
      { 
       "key": "automática", 
       "doc_count": 935 
      }, 
      { 
       "key": "com", 
       "doc_count": 919 
      }, 
      { 
       "key": "6", 
       "doc_count": 698 
      } 
     ] 
     } 
    } 

答えて

1

集計は保存されたフィールドのマッピングタイプに基づいています。 cambioのフィールドタイプは、analyzed(デフォルト)に設定されているようです。あなたのフィールドcambioのマッピングnot_analyzedでインデックスを作成してください。

PUTリクエストを使用してインデックスを作成することができます(ESバージョンが5未満の場合)。crawler10インデックスのデータを再インデックスする必要があります。 ESのV5以上

PUT crawler10/_mapping/ 
{ 
    "mappings": { 
    "crawler-vehicles10": { 
     "properties": { 
     "cambio": { 
      "type": "keyword" 
     } 
     } 
    } 
    } 
} 
について

PUT crawler10/_mapping/ 
{ 
    "mappings": { 
    "crawler-vehicles10": { 
     "properties": { 
     "cambio": { 
      "type": "string" 
      "index": "not_analyzed" 

     } 
     } 
    } 
    } 
} 

関連する問題