Qual é a diferença entre consulta difusa e consulta de correspondência?

Qual E A Diferenca Entre Consulta Difusa E Consulta De Correspondencia



Elasticsearch é um mecanismo de pesquisa e banco de dados bem conhecido, gratuito, de código aberto, analítico e distribuído, utilizado para gerenciar vários tipos de dados. É puramente um banco de dados NoSQL e funciona de maneira diferente dos bancos de dados SQL e relacionais típicos. O Elasticsearch usa DSL de consulta ((linguagem específica de domínio) e APIs REST para gerenciar e analisar os dados. Existem diferentes tipos de consultas no Elasticsearch, como consulta difusa, consulta de correspondência, consulta curinga, consulta de prefixo e muito mais. Essas consultas funcionam de maneira diferente de um para o outro.

Esta postagem demonstra em:

O que é uma consulta “difusa”?

O ' difuso ”consulta é uma consulta DSL que realiza outras operações de pesquisa, como alterar o caractere, inserir o caractere ou remover o caractere com base em“ Distância de edição de Levenshtein ”distância. Geralmente encontra a diferença entre os termos e retorna o resultado em um documento mais próximo ou quase semelhante ao termo pesquisado.







O que é uma consulta de “correspondência”?

O ' corresponder ”consulta é outro tipo de DSL de consulta usado para corresponder ou pesquisar os dados fornecidos, como string, número ou texto. É um ' texto completo ” e executa uma pesquisa de texto completo e retorna os resultados que correspondem exatamente ao termo pesquisado. Se o termo não corresponder ao termo de pesquisa, ele retornará uma string nula ou falsa.



Diferença entre consulta “difusa” e “correspondente”

Ambos ' difuso ' e ' corresponder ”consultas são usadas para fins de pesquisa. A principal diferença entre essas duas consultas é que a consulta “difusa” faz uma pesquisa difusa e retorna um resultado semelhante ou próximo ao termo pesquisado. Por outro lado, a consulta “correspondência” retorna os resultados que correspondem exatamente ao termo pesquisado.



Para melhor compreensão, siga os exemplos fornecidos abaixo:





Exemplo 1: pesquisa difusa usando consulta “difusa”

Suponha que o usuário queira encontrar o documento que possui o “ Designação ” valor como “ Autor ”. Vamos fazer uma pesquisa que encontre uma correspondência mais próxima. Para fazer isso, utilize o “ difuso ”consulta para pesquisar um documento que possui um“ Designação ” valor igual ou próximo de “ autor ”:

OBTER linuxhint / _procurar

{

'consulta' : {

'difuso' : {

'Designação' : 'autor'

}

}

}

A saída abaixo mostra que o documento com id “ 1 ' tem um ' Designação ”valor próximo ao“ autor ”termo pesquisado:



Mas se o exemplo acima for aplicado pelo “ corresponder ”consulta, ele enviará um“ cadeia nula ”pois retorna o termo de correspondência exata.

Exemplo 2: Pesquisa difusa usando consulta “Correspondência”

Vamos pegar o mesmo exemplo e aplicar o “ corresponder ”consulta para encontrar o documento com o“ Designação ” valor como “ autor ”:

OBTER linuxhint / _procurar

{

'consulta' : {

'corresponder' : {

'Designação' : 'autor'

}

}

}

A saída abaixo mostra que o “ corresponder ”A consulta não encontra resultados mais próximos e retorna um“ nulo ' corda:

Vamos modificar o valor pesquisado de “ autor ' para ' Autor ”E execute o“ corresponder ”Consulta conforme mostrado abaixo:

OBTER linuxhint / _procurar

{

'consulta' : {

'corresponder' : {

'Designação' : 'Autor'

}

}

}

Aqui você pode ver o “ corresponder ”consulta retorna o documento com id“ 1 ”. Porque o documento 1 corresponde exatamente aos termos pesquisados:

Isso é tudo sobre a diferença entre um “ difuso ”consulta e um“ corresponder ' consulta.

Conclusão

O ' difuso ”A consulta é usada para fazer uma pesquisa difusa e retorna os resultados que correspondem ao termo pesquisado. No entanto, o ' corresponder ”A consulta não suporta pesquisa difusa e retorna os resultados que correspondem exatamente ao termo pesquisado. Este blog ilustrou a diferença entre consulta difusa e consulta de correspondência.