Es habitual que una organización tenga una terminología única o varias formas de referirse a un concepto o un objeto. Para ayudar a los usuarios a encontrar elementos durante las búsquedas, debes definir sinónimos que establezcan equivalencias entre términos.
Los sinónimos se definen indexando elementos con el esquema _dictionaryEntry
, que es muy conocido.
Los elementos de tipo _dictionaryEntry
pueden tener las siguientes propiedades:
Propiedad | Tipo | Descripción | ¿Es obligatorio? |
---|---|---|---|
_term | cadena | El término que se va a definir. Los valores recomendados son palabras sin guiones o frases sin puntuación. | Obligatorio |
_synonym | cadena (repetida) | Términos alternativos que se incluirán en las consultas que coincidan con la cadena definida en _term . |
Obligatorio |
_onlyApplicableForAttachedSearchApplications | booleano | Permite agrupar sinónimos por fuente de datos y aplicación de búsqueda. Consulta más información en la sección Definir sinónimos específicos de fuentes de datos. | Opcional |
Cuando un usuario incluye el valor de la propiedad _term
en una consulta, la consulta real pasa a ser de "término O sinónimos". Por ejemplo, si el término "scifi" se define con el sinónimo "ciencia ficción", una consulta que contenga la palabra "scifi" incluirá los elementos que contengan "scifi" o "ciencia ficción".
Los sinónimos no se aplican bidireccionalmente. Si, por el contrario, la consulta solo incluye el término "ciencia ficción", Cloud Search no aplicará ningún sinónimo a la consulta. La consulta solo incluirá elementos que contengan la palabra "ciencia ficción", y se omitirán los elementos que contengan "scifi".
Para que los dos términos sean intercambiables, define cada uno por separado:
Término | Sinónimos |
---|---|
scifi | ciencia ficción |
ciencia ficción | scifi |
Durante el procesamiento de consultas, se eliminan los guiones y otros signos de puntuación antes de aplicar los sinónimos. La consulta de usuario "sci-fi" coincide con el término _term
"sci fi."
Para crear sinónimos de términos que los usuarios hayan podido separar con un guion, primero normaliza el término _term
de forma que use espacios en blanco en lugar de guiones.
Siguiendo con el ejemplo, en las siguientes definiciones se incluyen las consultas de los usuarios que tratan los términos "sci-fi", "sci fi", "scifi" y "ciencia ficción" como intercambiables:
Término | Sinónimos |
---|---|
scifi | ciencia ficción, sci fi |
sci fi | ciencia ficción, scifi |
ciencia ficción | scifi, sci fi |
De forma predeterminada, los sinónimos de cualquier fuente de datos se aplican a un dominio entero. En concreto, los sinónimos se aplican a todas las búsquedas de todas las aplicaciones de búsqueda, independientemente de la fuente de datos. Consulta la sección Definir sinónimos específicos de fuentes de datos para obtener información al respecto.
Definir sinónimos globales con el SDK de Cloud Search
Puedes usar el SDK Content Connector para definir términos y sus sinónimos. Consulta la página Crear un conector de contenido para obtener instrucciones al respecto.
En el siguiente fragmento se muestra cómo crear un RepositoryDoc
que represente el término y el sinónimo según el registro de un archivo CSV:
Cuando definas sinónimos, ten en cuenta lo siguiente:
- Las entradas de sinónimos deben ser de dominio público. Según el ejemplo anterior, esto se consigue definiendo la LCA como
DOMAIN_PUBLIC_ACL
. - No se deben definir las siguientes propiedades en el archivo de configuración porque anulan la configuración pública del dominio de tu código:
defaultAcl.mode=FALLBACK
defaultAcl.public=true
Definir sinónimos específicos de fuentes de datos
De forma predeterminada, se aplican sinónimos a todas las fuentes de datos de todas las aplicaciones de búsqueda. Sin embargo, puedes agrupar sinónimos por fuente de datos y aplicación de búsqueda. Por ejemplo, es posible que tu organización tenga equipos de ingeniería y ventas independientes y que quieras definir una experiencia de búsqueda diferente para cada uno, incluidos los sinónimos específicos de puestos de trabajo. En ese caso, puedes crear una aplicación de búsqueda con una fuente de datos y unos sinónimos específicos de ingeniería, y otra aplicación de búsqueda con una fuente de datos y unos sinónimos específicos de ventas.
Para limitar dónde se aplican sinónimos, asigna el valor _onlyApplicableForAttachedSearchApplications
a true
durante la indexación. Con esta configuración, se define un límite para que los sinónimos solo se apliquen a las aplicaciones de búsqueda que incluyan una fuente de datos concreta. Por ejemplo, se puede añadir la siguiente línea de código al código de ejemplo anterior para que los sinónimos indexados sean específicos de una fuente de datos:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);