É comum que uma organização tenha uma terminologia exclusiva ou várias maneiras de se referir a um conceito ou objeto. É necessário definir os sinônimos para estabelecer a equivalência de termos e ajudar os usuários a localizar os itens na realização de pesquisas.
Sinônimos são definidos por meio da indexação de itens com o esquema conhecido _dictionaryEntry
.
Itens do tipo _dictionaryEntry
podem ter as seguintes propriedades:
Propriedade | Tipo | Descrição | Obrigatório? |
---|---|---|---|
_term |
string | O termo a ser definido. Os valores recomendados são palavras não hifenizadas ou frases sem pontuação. | Obrigatório |
_synonym |
string (repeated) | Termos alternativos a serem incluídos em consultas que correspondem à string definida em _term . |
Obrigatório |
_onlyApplicableForAttachedSearchApplications |
boolean | Permite agrupar sinônimos por fonte de dados e app de pesquisa. Para mais informações, consulte Definir sinônimos específicos da fonte de dados. | Opcional |
Quando um usuário inclui o valor da propriedade _term
em uma consulta, a consulta efetiva se torna "termo OR sinônimos". Por exemplo, se o termo "scifi" for definido com o sinônimo "science fiction", uma consulta contendo a palavra "scifi" corresponderá a itens que contêm "scifi" ou "science fiction."
Os sinônimos não são aplicados de modo bidirecional. Se, em vez disso, a consulta for por "science fiction,", o Cloud Search não aplicará sinônimos a ela. A consulta corresponde apenas a itens que contêm "science fiction.". Os itens que contêm "scifi" são omitidos.
Para tornar todos os termos intercambiáveis, defina cada termo separadamente:
Termo | Sinônimos |
---|---|
scifi | science fiction |
science fiction | scifi |
Durante o processamento da consulta, os hifens e outras pontuações são removidos antes da aplicação de sinônimos. A consulta do usuário "sci-fi" corresponde a _term
"sci fi.". Para criar sinônimos para termos que podem ser hifenizados pelos usuários, primeiro normalize o _term
para usar espaços em branco em vez de hifens.
Continuando com o exemplo, as definições a seguir correspondem às consultas do usuário que tratam "sci-fi," "sci fi," "scifi," e "science fiction" como intercambiáveis:
Termo | Sinônimos |
---|---|
scifi | science fiction, sci fi |
sci fi | science fiction, scifi |
science fiction | scifi, sci fi |
Por padrão, os sinônimos em qualquer fonte de dados se aplicam a um domínio inteiro. Especificamente, os sinônimos são aplicados a todas as pesquisas em apps de pesquisa, independentemente da origem de dados. Se você quiser sinônimos específicos da fonte de dados, consulte o artigo Definir sinônimos específicos da fonte de dados.
Definir sinônimos globais usando o SDK do Cloud Search
É possível usar o SDK do Content Connector para definir termos e sinônimos. Consulte Criar um conector de conteúdo para instruções sobre como criar um conector.
O snippet a seguir ilustra a criação de um
RepositoryDoc
que representa o termo e o sinônimo com base em um registro de arquivo CSV:
Observe o seguinte ao definir sinônimos:
- As entradas de sinônimo precisam ser de domínio público. No exemplo anterior, isso é feito ao configurar a lista de controle de acesso (ACL, na sigla em inglês) como
DOMAIN_PUBLIC_ACL
. - As seguintes propriedades não devem ser definidas para o arquivo de configuração
porque substituem a configuração de domínio público no código:
defaultAcl.mode=FALLBACK
defaultAcl.public=true
Definir sinônimos específicos do aplicativo de pesquisa
Por padrão, os sinônimos são aplicados a todas as fontes de dados em todos os aplicativos de pesquisa.
No entanto, suponha que sua organização tenha equipes de engenharia e vendas separadas e você queira fornecer a cada equipe uma experiência de pesquisa diferente, incluindo sinônimos específicos da função. Nesse caso, você pode criar um aplicativo de pesquisa com sinônimos e uma fonte de dados específica de engenharia e outro aplicativo de pesquisa com sinônimos e uma fonte de dados específica para vendas. Para alcançar
esse objetivo, indexe cada sinônimo em uma fonte de dados específica
usando _onlyApplicableForAttachedSearchApplications=true
. Essa configuração limita os sinônimos, de modo que sejam aplicados apenas a aplicativos de pesquisa que incluem uma fonte de dados específica.
Por exemplo, adicionar a linha de código abaixo ao exemplo de código anterior garante que os sinônimos indexados sejam específicos da fonte de dados:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);