2017-01-08 4 views
0

Я пытаюсь получить уникальные значения из поля в упругом поиске. Для делать это, прежде всего, я сделал следующий:Неверные уникальные значения в поле в поиске elastics

PUT tv-programs/_mapping/text?update_all_types 
{ 
    "properties": { 
    "channelName": { 
     "type":  "text", 
     "fielddata": true 
    } 
    } 
} 

После этого я выполнил это:

GET _search 
{ 
"size": 0, 
"aggs" : { 
    "channels" : { 
     "terms" : { "field" : "channelName" , 
     "size": 1000 
     } 
    } 
}} 

И увидел следующий ответ:

... 
"buckets": [ 
     { 
      "key": "tv", 
      "doc_count": 4582 
     }, 
     { 
      "key": "baby", 
      "doc_count": 2424 
     }, 
     { 
      "key": "24", 
      "doc_count": 1547 
     }, 
     { 
      "key": "channel", 
      "doc_count": 1192 
     },.. 

Проблема заключается в том, что в оригинальных записях есть не являются 4 различными записями. Правильный выход должен быть следующим:

"buckets": [ 
     { 
      "key": "baby tv", 
      "doc_count": 4582 
     } 
     { 
      "key": "channel 24", 
      "doc_count": 1547 
     },.. 

Почему это происходит? Как я могу увидеть правильный вывод?

ответ

2

Я нашел решение. Я только что добавил .keyword после названия поля:

GET _search 
{ 
"size": 0, 
"aggs" : { 
    "channels" : { 
     "terms" : { "field" : "channelName.keyword" , 
     "size": 1000 
     } 
    } 
}} 

 Смежные вопросы

  • Нет связанных вопросов^_^