У нас есть Elasticsearch 6.5. Я использую его для поиска в индексе с помощью регулярных выражений, и он работает в большинстве случаев.
{
"query": {
"bool": {
"must": [
{
"match": { "field1:field2" : "Complete" }
},
{
"bool": {
"should": [
{
"regexp": { "field1.field3" : ".*mysource_.+20190102" }
}
]
}
}
]
}
},
"size":10000
}
Использование приведенного выше запроса работает нормально в большинстве случаев. Например, mysource_121_AB_PQ_20190102 (и аналогичные) выбираются правильно. Тем не менее, у меня есть текст, хранящийся как mysource_101_XY-FG_20190102, который не выбирается с использованием приведенного выше регулярного выражения.
Если я не использую регулярное выражение, простое сопоставление выбирает данные правильно. Только это регулярное выражение не работает над этим. Я полагаю, что это из-за дефиса, да sh или знака минус (-).
Может ли кто-нибудь помочь в поиске таких данных с помощью регулярного выражения?
Обратите внимание, что индекс не поддерживается мы не можем запускать команды администратора для индекса.