Vídeo: Common design patterns with Azure Cosmos DB | Azure Friday 2024
Muitos bancos de dados NoSQL suportam recursos de consulta e determinadas capacidades de pesquisa. Escolher o direito, muitas vezes se resume a compreender os recursos que você precisa suportar.
Embora estejam relacionados, consultas e pesquisas são bastante diferentes. Uma consulta retorna apenas os resultados que combinam todos os termos nele. A pesquisa, por outro lado, pode incluir termos opcionais e geralmente fornece resultados ordenados por um cálculo de relevância.
Os cálculos de relevância permitem muitas interações de pesquisa mais flexíveis. Os usuários que fazem as pesquisas fazem a chamada final sobre qual resultado é uma correspondência para eles - o mecanismo de pesquisa apenas fornece dicas ordenadas.
Tanto a pesquisa como a consulta permitem correspondências de valores exatas e consultas de alcance - por exemplo, onde um valor de campo de data em um registro está entre dois valores. As consultas de intervalo não são suportadas por muitos bancos de dados ou mecanismos de pesquisa do NoSQL, portanto, se você precisar deles, certifique-se de verificar isso no início do processo de seleção.
A maioria dos motores de busca é projetada para pesquisar registros inteiros e limitar seus termos de consulta para campos específicos (como uma data "publicada em"). Normalmente, vários métodos de consulta de texto livre estão disponíveis, incluindo estes:
-
Consulta de palavras, onde cada palavra é OR'ed em conjunto: Então "blog adam fowler" é avaliado como adam OU fowler OU blog com uma partida de todas as palavras, resultando em uma pontuação de relevância maior do que usando apenas uma das palavras.
-
Consulta de frase, onde toda a frase é tratada como uma: Então "De Mouses e Homens" é avaliado de tal forma que o resultado deve ter todas as palavras, na mesma ordem, para ser uma partida.
-
Wildcard: Procurando por "run *" retorna resultados para "executar", "execuções", "execução" e "corredor". "
-
Stemming: Uma pesquisa para" executar "também retorna resultados para" executado "e" executa ", mas não" em execução "ou" corredor "; A pesquisa de "gato" também retorna resultados para "gatos". "
-
Lemmatização: Este é o método mais avançado do que o sério. Por exemplo, a lematiza do termo "melhor" resulta em seu lema (a base ou a forma de dicionário de uma palavra), que neste caso é "bom". "
A maioria das pessoas prefere os termos de pesquisa de digitação em uma caixa de pesquisa de estilo do Google porque é tão fácil de usar.
Os mecanismos de pesquisa suportam um formato de texto chamado gramática de pesquisa. No Google, por exemplo, digitar "site: Reino Unido e Adam Fowler e Londres" coincide com todos os documentos dos sites do Reino Unido que mencionam a palavra Londres e a frase Adam Fowler.
Você também pode usar parênteses para aninhar termos dentro de termos, o que é particularmente útil com operadores booleanos, como AND, OR e NOT.
Às vezes, é necessário um mecanismo de consulta mais estruturado. Normalmente, este é um formato personalizado e muito fino em formato JSON ou XML. Um bom exemplo é encontrado em consultas geoespaciais. Especificar uma caixa delimitadora de uma área que deseja que uma pesquisa corresponda normalmente é melhor feita em um mapa, desenhando uma caixa em vez de digitar as coordenadas em uma barra de pesquisa de texto livre.
Mais e mais, as pessoas usam consultas geoespaciais para limitar suas pesquisas, incluindo o seguinte:
-
Ponto: Corresponde a um ponto exato.
-
Raio de ponto: Corresponde a uma distância de um ponto (uma área circular).
-
Caixa de encadernação: Corresponde a uma área quadrada (como na área exibida de um mapa).
-
Polígono: Combina uma forma de mão livre ou irregular. Um bom exemplo é a forma de um condado ou estado. Estes são, basicamente, grandes matrizes de coordenadas dentro de uma área.
-
Interconexão de polígono-polígono: Corresponde a polígonos dentro de registros (em oposição a pontos dentro de registros como nos tipos de consulta anteriores) com um polígono de consulta. O polígono de consulta toca um em um registro ou o contém completamente ou perca totalmente? Este tipo de consulta requer muito processamento e não é amplamente suportado, mas é necessário no setor de defesa.
t é importante notar que as consultas geoespaciais dependem fortemente de matemática complexa sobre como um sistema de referência de coordenadas particular (chamado CRS) representa o mundo. Por exemplo, os dispositivos GPS usam um sistema chamado WGS84 (também chamado de EPSG: 4326), enquanto os mapas on-line usam o sistema EPSG: 900916 CRS. Estar ciente de como um banco de dados armazena seus dados geoespaciais e as conversões necessárias são muito importantes; Caso contrário, você pode não conseguir uma correspondência ou estar a várias centenas de metros do seu resultado pretendido.
Alguns mecanismos de pesquisa também suportam métodos que ajudam os usuários a inserir suas consultas. Isso é mais óbvio na funcionalidade de autocompletar do Google. Você começa a digitar uma consulta e o Google sugere as consultas mais prováveis para você selecionar. Muitos mecanismos de pesquisa suportam funcionalidades semelhantes.
Muitas mais funções de pesquisa estão disponíveis, então certifique-se de fazer sua pesquisa antes de selecionar um mecanismo de pesquisa.