Я пытаюсь запустить граненый запрос в некоторых журналах, которые я сохранил в ES. Бревна выглядят как-тоElasticsearch: Графический запрос с условиями, возвращающими неожиданный результат
{"severity": "informational","message_hash_value": "00016B15", "user-agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1", "host": "192.168.8.225", "version": "1.0", "user": "[email protected]", "created_timestamp": "2013-03-01T15:34:00", "message": "User viewed contents", "inserted_timestamp": "2013-03-01T15:34:00"}
запрос, который я пытаюсь запустить,
curl -XGET 'http://127.0.0.1:9200/logs-*/logs/_search'
-d {"from":0, "size":0,
"facets" : {
"user" : {
"terms" : {"field" : "user", "size" : 999999 } } } }
Обратите внимание, что поле "user"
в журналах является адрес электронной почты. Теперь проблема в том, что используемый нами поисковый запрос terms-facet
возвращает список терминов из поля users, как показано ниже.
u'facets': {u'user': {u'_type': u'terms', u'total': 2004, u'terms': [{u'count': 1002,u'term': u'test.co'}, {u'count': 320, u'term': u'user_1'}, {u'count': 295,u'term': u'user_2'}
Обратите внимание, что этот список содержит term
{u'count': 1002,u'term': u'test.co'}
который является доменным именем для адреса электронной почты пользователей. Почему elasticsearch обрабатывает домен как отдельный термин?
Выполнение запроса для проверки отображения
curl -XGET 'http://127.0.0.1:9200/logs-*/_mapping?pretty=true'
дает следующее за "user"
поля
"user" : {
"type" : "string"
},
отличный ответ. +1 для ссылки и повторной индексации. ура – auny