ElasticSearch Regexp Filter
Estoy teniendo problemas para expresar correctamente una expresión regular para el filtro de ElasticSearch Regexp. Estoy intentando hacer coincidir cualquier cosa en "info-for / media" en el campo de URL, por ejemplo.http://mydomain.co.uk/info-for/media/press-release-1. Para intentar obtener la expresión regular correcta estoy usandomatch_all
por ahora, pero esto eventualmente serámatch_phrase
con la cadena de consulta del usuario.
POST a localhost: 9200 / _search
{
"query" : {
"match_all" : { },
"filtered" : {
"filter" : {
"regexp": {
"url":".*info-for/media.*"
}
}
}
},
}
Esto devuelve0 hits, pero analiza correctamente..*info.*
obtiene resultados que contienen la url, pero desafortunadamente es demasiado amplio, por ej. coincidiendo con cualquier URL que contenga "información". Tan pronto como vuelvo a agregar el guión en "info-for", obtengo 0 resultados nuevamente. No importa la combinación de caracteres de escape que intente, o bien obtengo una excepción de análisis o ninguna coincidencia. ¿Alguien puede ayudar a explicar lo que estoy haciendo mal?