У меня есть документ со следующей структурой:запросов со значениями, которые имеют специальные символы
{
"_index": "logstash-2014.10.08",
"_type": "iis",
"_id": "HRM7LWfBSPGo9PUS0Z1ynw",
"_score": 1,
"_source": {
"@version": "1",
"@timestamp": "2014-10-08T12:37:26.000Z",
"type": "iis",
"messageId":
"O5pUHWOuEnTT0xQxXfNW6L+O6EMIjTFO7e//t+S/99en4zzOnlhqjEKlw02ZZVRFlyVaawA=="
}
}
Вот мое отображение:
"messageId" : {
"type" : "string",
"norms" : {
"enabled" : false
},
"fields" : {
"raw" : {
"type" : "string",
"index" : "not_analyzed",
"ignore_above" : 256
}
}
}
Я пытаюсь выполнить запрос, и я хотел бы возвращают только документы, которые имеют точное значение messageId, которое передается по запросу. Я попытался выполнить запросы, используя match и filter.
Если я использую термин, он возвращает ноль документы:
{
"query": {
"term" : {
"messageId" :
"O5pUHWOuEnTT0xQxXfNW6L+O6EMIjTFO7e//t+S/99en4zzOnlhqjEKlw02ZZVRFlyVaawA=="
}
}
}
Когда я использовать матч, я могу получить документ обратно, но если я сделать небольшие изменения на MESSAGEID, она по-прежнему возвращает свой документ и MESSAGEID на запрос отличается от документа.
{
"query": {
"match" : {
"messageId" :
"O5pUHWOuxXfNW6L+O6EMIjTFO7e//t+S/99en4zzOnlhqjEKlw02ZZVRFlyVaawA=="
}
}
}
Кто-нибудь знает, как я могу выполнить запрос и получить документы, которые имеют точное значение для messageId?
Благодарим заранее.
Можете ли вы добавить команды cURL, чтобы их воссоздать? Я не думаю, что ваше сопоставление применяется во время индекса. Вы можете попробовать анализатор тестового поля, чтобы убедиться, что он индексируется как один токен. – Andy
Я проиндексировал его, используя Logstash. Как я могу использовать полевой анализатор? – placplacboom
Я не знаком с нормами вокруг Logstash, ваш индекс настроен автоматически? Проверьте полевой анализатор с помощью команды cURL @ http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/indices-analyze.html. – Andy