Четкий поиск

105 views
Skip to first unread message

Andry ZaEzzz Bel

unread,
Mar 18, 2015, 8:18:27 AM3/18/15
to elastics...@googlegroups.com
Добрый день!
Как в ES реализовать четкий поиск чтобы найти документ по полному соответствию поля?
Желательно с учетом API Elasticsearch-py.

Для примера имеется следующие документ:
{
   
"vendor": "Finistar",
   
"name": "DUAL RATE SFP FIBER TRANSCEIVER FTLX8571D3BCV-IT",
   
"model": "FTLX8571D3BCV-IT",
   
"partnumber": "FTLX8571D3BCV-IT"
}

Составляем к нему запрос поиска:
{
   
"query": {
       
"match": {
           
"model": "FTLX8571D3BCV-IT"
       
}
   
}
}

Находит. Хорошо, но при следующем запросе он тоже его находит!
{
   
"query": {
       
"match": {
           
"model": "FTLX8571D3BCV-ITm"
       
}
   
}
}

Пытаюсь через фильтр найти - пустота:
{
   
"query": {
       
"filtered": {
           
"query": {
               
"match_all": {}
           
},
           
"filter": {
               
"prefix": {
                   
"model": "FTLX8571D3BCV-IT"
               
}
           
}
       
}
   
}
}

Andry ZaEzzz Bel

unread,
Mar 18, 2015, 8:23:28 AM3/18/15
to elastics...@googlegroups.com
В последнем приведенном запросу у меня стоит "prefix" - это один из фильтров, которые я попробовал.
Начал с term, но так же ничего не находил.

Igor Motov

unread,
Mar 19, 2015, 11:12:28 AM3/19/15
to elastics...@googlegroups.com
Надо проиндексировать поле как not_analyzed и искать через фильтр term.

https://github.com/imotov/elasticsearch-test-scripts/blob/master/exact_match.sh

Andry ZaEzzz Bel

unread,
Mar 23, 2015, 1:40:52 AM3/23/15
to elastics...@googlegroups.com
Спасибо!
Правильно-ли я понимаю, что данное действие невозможно с "нативным" сохранением данных и требуется сначала всё выгрузить, затем настроить маппинги и после этого загрузить данные?

четверг, 19 марта 2015 г., 20:12:28 UTC+5 пользователь Igor Motov написал:

Igor Motov

unread,
Mar 23, 2015, 9:29:59 AM3/23/15
to elastics...@googlegroups.com
Да. Но выгружать не обязательно - можно просто переиндексировать из этого в другой индекс, если вы source сохранили.

Andry ZaEzzz Bel

unread,
Mar 24, 2015, 1:27:00 AM3/24/15
to elastics...@googlegroups.com
Это как?

понедельник, 23 марта 2015 г., 18:29:59 UTC+5 пользователь Igor Motov написал:

Igor Motov

unread,
Mar 26, 2015, 10:38:52 AM3/26/15
to elastics...@googlegroups.com
Вот так, например https://github.com/elastic/stream2es#elasticsearch либо любой другой утилитой для переиндексирования. 
Reply all
Reply to author
Forward
0 new messages