É 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
.
Os 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 nas consultas que correspondem à string definida em _term . |
Obrigatório |
_onlyApplicableForAttachedSearchApplications |
boolean | Permite agrupar sinônimos por fonte de dados e aplicativo 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 que contenha a palavra "scifi" vai corresponder a itens que contenham "scifi" ou "science fiction.".
Os sinônimos não são aplicados de modo bidirecional. Se, em vez do exemplo anterior, a consulta for por "science fiction,", o Cloud Search não vai aplicar sinônimos a ela. A consulta só corresponde a itens que contêm "science fiction.". Os itens que contêm "scifi" são omitidos.
Para fazer com que todos os termos sejam intercambiáveis, defina cada um deles 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 ao _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 são aplicados em todo um domínio. Especificamente, os sinônimos são aplicados em todos os apps de pesquisa, para todas as pesquisas, independentemente da fonte de dados. Se você quiser sinônimos específicos de uma fonte de dados, consulte Definir sinônimos específicos de uma 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
. - Não defina as propriedades a seguir para o arquivo de configuração porque elas modificam a configuração de domínio público do 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 separadas de engenharia e vendas, e você queira oferecer a cada equipe uma experiência de pesquisa diferente, incluindo sinônimos específicos para a função. Nesse caso, você pode criar um aplicativo de pesquisa com uma fonte de dados e sinônimos específicos de engenharia e outro com uma fonte de dados e sinônimos específicos de vendas. Para isso, indexe cada sinônimo em uma fonte de dados específica usando _onlyApplicableForAttachedSearchApplications=true
. Essa configuração limita os sinônimos para que eles sejam aplicados apenas a aplicativos de pesquisa que incluem uma origem de dados específica.
Por exemplo, adicionar a seguinte linha de código à amostra anterior garante que os sinônimos indexados sejam específicos da fonte de dados:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);