Sinónimos para expansão de consulta sobre um índice de pesquisa - Azure Cognitive Search (2022)

  • Artigo
  • 6 minutos para ler

Dentro de um serviço de pesquisa, os mapas de sinónimo são um recurso global que associa termos equivalentes, expandindo o âmbito de uma consulta sem que o utilizador tenha realmente que fornecer o termo. Por exemplo, assumindo que "cão", "canino" e "cachorrinho" são sinónimos mapeados, uma consulta sobre "canino" corresponderá a um documento que contenha "cão".

Criar sinónimos

Um mapa de sinónimo é um ativo que pode ser criado uma vez e usado por muitos índices. O nível de serviço determina quantos mapas de sinónimo pode criar, variando de três mapas de sinónimo para níveis gratuitos e básicos, até 20 para os níveis Standard.

Pode criar vários mapas de sinónimos para diferentes línguas, como versões em inglês e francês, ou léxicos se o seu conteúdo incluir terminologia técnica ou obscura. Embora possa criar vários mapas de sinónimo no seu serviço de pesquisa, dentro de um índice, uma definição de campo só pode ter uma atribuição de mapa sinónimo.

Um mapa de sinónimo consiste em nome, formato e regras que funcionam como entradas de mapa sinónimo. O único formato suportado é solr, e o formato determina a solr construção de regras.

POST /synonymmaps?api-version=2020-06-30{ "name": "geo-synonyms", "format": "solr", "synonyms": " USA, United States, United States of America\n Washington, Wash., WA => WA\n"}

Para criar um mapa de sinónimo, faça-o programáticamente (o portal não suporta definições de mapa sinónimo):

  • Criar Mapa de Synonym (REST API). Esta referência é a mais descritiva.
  • Classe SynonymMap (.NET) e Add Synonyms usando C#
  • Classe SynonymMap (Python)
  • Interface SynonymMap (JavaScript)
  • Classe SynonymMap (Java)

Definir regras

As regras de mapeamento aderem à especificação do filtro de sinónimo de código aberto da Apache Solr, descrita neste documento: SynonymFilter. O solr formato suporta dois tipos de regras:

  • equivalência (em que os termos são substitutos iguais na consulta)

  • mapeamentos explícitos (quando os termos são mapeados para um termo explícito antes da consulta)

Cada regra deve ser delimitada pelo carácter da nova linha (\n). Você pode definir até 5.000 regras por mapa de sinónimo em um serviço gratuito e 20.000 regras por mapa em outros níveis. Cada regra pode ter até 20 expansões (ou itens de uma regra). Para mais informações, consulte os limites do Synonym.

Os parsers de consulta vão diminuir os termos de casos superiores ou mistos, mas se quiser preservar caracteres especiais na corda, como uma vírgula ou traço, adicione os caracteres de fuga apropriados ao criar o mapa do sinónimo.

Regras de equivalência

As regras para termos equivalentes são delimitadas dentro da mesma regra. No primeiro exemplo, uma consulta sobre USA irá expandir-se para USA OR "United States""United States of America". Note que se quiser coincidir com uma frase, a consulta em si deve ser uma consulta de frases incluídas naspas.

No caso da equivalência, uma consulta para dog expandirá a consulta para incluir puppy também e canine.

{"format": "solr","synonyms": " USA, United States, United States of America\n dog, puppy, canine\n coffee, latte, cup of joe, java\n"}

Mapeamento explícito

As regras para um mapeamento explícito são denotadas por uma seta =>. Quando especificado, uma sequência de termo de uma consulta de pesquisa que corresponda ao lado esquerdo será => substituída pelas alternativas no lado direito na hora da consulta.

No caso explícito, uma consulta para , ou será reescrita como WA, e o motor de consulta só procurará fósforos no termo WA.WAWash.Washington O mapeamento explícito só se aplica na direção especificada e não reescreve a consulta WA neste Washington caso.

{"format": "solr","synonyms": " Washington, Wash., WA => WA\n California, Calif., CA => CA\n"}

Escapando de personagens especiais

Na pesquisa completa por texto, os sinónimos são analisados durante o processamento de consultas como qualquer outro termo de consulta, o que significa que as regras em torno de caracteres reservados e especiais se aplicam aos termos no seu mapa de sinónimos. A lista de caracteres que requer escapatória varia entre a sintaxe simples e a sintaxe completa:

  • sintaxe simples+ | " ( ) ' \
  • sintaxe completa+ - & | ! ( ) { } [ ] ^ " ~ * ? : \ /

Lembre-se que se precisar de preservar caracteres que de outra forma seriam descartados pelo analisador predefinido durante a indexação, deve substituir um analisador que os preserve. Algumas escolhas incluem analisadores de linguagem natural da Microsoft, que preserva palavras hifenizadas, ou um analisador personalizado para padrões mais complexos. Para mais informações, consulte termos, padrões e caracteres especiais.

O exemplo a seguir mostra um exemplo de como escapar de um personagem com uma lomassa:

{"format": "solr","synonyms": "WA\, USA, WA, Washington\n"}

Uma vez que o backslash é em si um personagem especial em outras línguas como JSON e C#, você provavelmente precisará de escapar duas vezes. Por exemplo, o JSON enviado à API REST para o mapa de sinónimo acima seria assim:

{"format":"solr","synonyms": "WA\\, USA, WA, Washington"}

Carregar e gerir mapas de sinónimo

Como mencionado anteriormente, pode criar ou atualizar um mapa de sinónimo sem perturbar a consulta e indexar cargas de trabalho. Um mapa de sinónimo é um objeto autónomo (como índices ou fontes de dados), e enquanto nenhum campo estiver a usá-lo, as atualizações não farão com que a indexação ou as consultas falhem. No entanto, uma vez que adicione um mapa de sinónimo a uma definição de campo, se então apagar um mapa de sinónimo, qualquer consulta que inclua os campos em questão falhará com um erro de 404.

Criar, atualizar e eliminar um mapa de sinónimo é sempre uma operação de documento completo, o que significa que não é possível atualizar ou apagar gradualmente partes do mapa de sinónimos. Atualizar mesmo uma única regra requer uma recarga.

Atribuir sinónimos aos campos

Depois de carregar um mapa de sinónimos, pode ativar os sinónimos em campos do tipo Edm.String ou Collection(Edm.String), em campos com "searchable":true. Como notado, uma definição de campo pode usar apenas um mapa de sinónimo.

POST /indexes?api-version=2020-06-30{ "name":"hotels-sample-index", "fields":[ { "name":"description", "type":"Edm.String", "searchable":true, "synonymMaps":[ "en-synonyms" ] }, { "name":"description_fr", "type":"Edm.String", "searchable":true, "analyzer":"fr.microsoft", "synonymMaps":[ "fr-synonyms" ] } ]}

Consulta sobre campos equivalentes ou mapeados

A adição de sinónimos não impõe novos requisitos para a construção de consultas. Pode emitir consultas de termo e frases, tal como fez antes da adição de sinónimos. A única diferença é que se um termo de consulta existe no mapa do sinónimo, o motor de consulta irá expandir ou reescrever o termo ou frase, dependendo da regra.

Como os sinónimos são usados durante a execução de consultas

Os sinónimos são uma técnica de expansão de consulta que complementa o conteúdo de um índice com termos equivalentes, mas apenas para campos que têm uma atribuição de sinónimo. Se uma consulta de campo excluir um campo ativado por sinónimo, não verá correspondências do mapa do sinónimo.

Para campos com sinónimos, os sinónimos estão sujeitos à mesma análise de texto que o campo associado. Por exemplo, se um campo for analisado usando o analisador padrão Lucene, os termos do sinónimo também estarão sujeitos ao analisador padrão lucene no momento da consulta. Se quiser preservar a pontuação, tais como períodos ou traços, no termo sinónimo, aplique um analisador de preservação de conteúdos no campo.

Internamente, a função de sinónimos reescreve a consulta original com sinónimos com o operador OR. Por esta razão, os perfis de destaque e pontuação de impacto tratam o termo original e os sinónimos como equivalentes.

Os sinónimos aplicam-se apenas a consultas de texto em formato livre e não são suportados para filtros, facetas, autocompletos ou sugestões. O autocompleto e as sugestões baseiam-se apenas no termo original; os jogos de sinónimo não aparecem na resposta.

As expansões de synonym não se aplicam a termos de pesquisa wildcard; prefixo, fuzzy e termos regex não são expandidos.

Se precisar de fazer uma única consulta que aplique expansão de sinónimo e pesquisas wildcard, regex ou fuzzy, pode combinar as consultas usando a sintaxe OR. Por exemplo, para combinar sinónimos com wildcards para uma simples sintaxe de consulta, o termo seria <query> | <query>*.

Se tiver um índice existente num ambiente de desenvolvimento (não-produção), experimente com um pequeno dicionário para ver como a adição de sinónimos altera a experiência de pesquisa, incluindo o impacto nos perfis de pontuação, destaque de sucesso e sugestões.

Passos seguintes

Criar um mapa sinónimo (REST API)

Top Articles

You might also like

Latest Posts

Article information

Author: Carlyn Walter

Last Updated: 12/16/2022

Views: 5855

Rating: 5 / 5 (70 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Carlyn Walter

Birthday: 1996-01-03

Address: Suite 452 40815 Denyse Extensions, Sengermouth, OR 42374

Phone: +8501809515404

Job: Manufacturing Technician

Hobby: Table tennis, Archery, Vacation, Metal detecting, Yo-yoing, Crocheting, Creative writing

Introduction: My name is Carlyn Walter, I am a lively, glamorous, healthy, clean, powerful, calm, combative person who loves writing and wants to share my knowledge and understanding with you.