Фильтр регулярных выражений ElasticSearch
У меня проблемы с правильным выражением регулярного выражения для фильтра ElasticSearch Regexp. Я пытаюсь сопоставить что-либо в "info-for / media" в поле URL, напримерhttp://mydomain.co.uk/info-for/media/press-release-1, Чтобы попытаться получить правильное выражение, я используюmatch_all
на данный момент, но это в конечном итоге будетmatch_phrase
со строкой запроса пользователя.
POST для localhost: 9200 / _search
{
"query" : {
"match_all" : { },
"filtered" : {
"filter" : {
"regexp": {
"url":".*info-for/media.*"
}
}
}
},
}
Это возвращает0 хиты, но разбирает правильно..*info.*
действительно получает результаты, содержащие URL-адрес, но, к сожалению, слишком широкий, например, сопоставление любых URL-адресов, содержащих «информацию». Как только я снова добавляю дефис в «info-for», я снова получаю 0 результатов. Независимо от того, какую комбинацию escape-символов я пытаюсь использовать, я получаю исключение синтаксического анализа или не соответствует. Кто-нибудь может помочь объяснить, что я делаю не так?