Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Bloquear consultas de prefixo

Olá, existe algum modo de barrar a consulta por prefixo no próprio Elasticsearch? Por exemplo: se eu digito somente '*', retorna todos meus documentos indexados e não gostaria que isso funcionasse pra nenhum caso. Outra coisa é sobre '/'. Se a digito, minha aplicação pára e tenho que reiniciá-la. Existe algum meio de criar uma lista para excluir esses e outros caracteres na busca? Procurei por wildcard, mas não achei como desabilitar... Alguém pode, por favor, me ajudar? Obrigado.

2 respostas
solução!

Olá Rafael,

Existem algumas maneiras de fazer o que você quer e este assunto entra justamente na parte de administração do Elasticsearch que é análoga à adminstração de um banco de dados.

Minha sugestão é para você implementar circuit-breakers que são configurações que limitam recursos para consultas e agregações no Elasticsearch (veja https://www.elastic.co/guide/en/elasticsearch/guide/master/_limiting_memory_usage.html). Caso você esteja usando uma instalação que você faça o hosting, vale a pena dar uma mexida nas settings e testar. Caso você esteja usando Elasticsearch na nuvem, tente abrir um chamado e explicar o que precisa que o provider deve te ajudar.

Uma outra maneira, um pouco mais complicada, é usar o Jetty como um proxy para o Elasticsearch e implementar filtros para barrar requisições. Veja https://github.com/sonian/elasticsearch-jetty - Nota: Eu não tenho certeza se o plugin funciona para o Elasticsearch 5. Não vejo motivos para não funcionar, mas fica o aviso. O desafio aqui é que existem várias maneiras de fazer queries e você teria que barrar todas, além é claro de ter que escrever código e colocar um componente extra na sua solução.

Olá Thadeu, obrigado pela resposta e desculpe a demora... Grande abraço.