É 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 indexando 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 nas 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
com a palavra "scifi" corresponderá aos 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á nenhum sinônimo a ela. A consulta corresponde apenas a itens com "science fiction.". Os itens com "scifi" são omitidos.
Para tornar todos os dois termos intercambiáveis, defina cada um deles separadamente:
Termo | Sinônimos |
---|---|
scifi | science fiction |
science fiction | scifi |
Durante o processamento da consulta, hifenização e outras pontuações são removidas 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 abaixo 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 nos apps de pesquisa para todas as pesquisas, independentemente da origem de dados. Se quiser sinônimos específicos da fonte de dados, consulte 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 uma
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 no arquivo de configuração
porque elas 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 apps de pesquisa.
No entanto, suponha que sua organização tenha equipes separadas de engenharia e vendas e você queira fornecer a cada equipe uma experiência de pesquisa diferente, incluindo sinônimos específicos da função. Nesse caso, é possível criar um app de pesquisa com uma fonte de dados e sinônimos específicos de engenharia e outro app de pesquisa com uma fonte de dados e sinônimos específicos de vendas. Para atingir
essa meta, 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 somente a aplicativos de pesquisa que incluem uma fonte de dados específica.
Por exemplo, adicionar a linha de código a seguir à amostra de código anterior garante que os sinônimos indexados sejam específicos da fonte de dados:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);