Gestión de sinónimos, palabras frecuentes y asociaciones de términos de búsqueda

ZooKeeper se utiliza para gestionar varios tipos de listas personalizables de términos asociados utilizados por la función de búsqueda. Las palabras frecuentes se eliminan de la consulta antes de que se procesen. Los sinónimos y las asociaciones de términos de búsqueda (STA) implementan sustituciones de catálogo para términos de consulta de formas ligeramente diferentes. Cada lista personalizada es accesible y puede cambiar directamente palabras frecuentes y sinónimos en ZooKeeper.

Introducción

ZooKeeper almacena un conjunto de listas que utiliza el servicio de consulta de la versión 9.1. Cada lista consta de una palabra y su asociación o la acción que debe realizarse cuando se encuentra. Actualmente se mantienen tres listas:
  • La lista palabras frecuentes registra todas las palabras que se deben filtrar de la consulta de búsqueda antes de que se realice el proceso de lenguaje natural en ella. Esta lista normalmente contiene las palabras más comunes en un idioma (como "the" en inglés).
  • Las asociaciones de términos de búsqueda y sinónimos amplían el ámbito de los resultados de búsqueda añadiendo términos de búsqueda adicionales a las búsquedas sometidas. Los resultados de búsqueda incluyen el término de búsqueda sometido, además de los resultados de búsqueda para los sinónimos adicionales definidos o STA. Aunque se procesan de la misma manera, son listas separadas generadas por distintos mecanismos. El mecanismo STA proporciona un enfoque compatible con versiones anteriores mediante el cual los sinónimos se cargan directamente desde la base de datos. El mecanismo de sinónimos utiliza ZooKeeper y está pensado para proporcionar más opciones para gestionar asociaciones en el entorno Elasticsearch.
Estas listas personalizadas se almacenan en formato JSON en ZooKeeper, en diccionarios específicos del idioma. Las secciones siguientes describen la estructura de estos diccionarios y cómo puede interactuar con ellos en ZooKeeper utilizando la API REST.

El diccionario de palabras frecuentes

Interactúa con el diccionario de palabras frecuentes mediante llamadas REST. Las llamadas permitidas son GET, POST y PATCH. Por ejemplo, en el caso de una llamada GET, el cuerpo de respuesta contiene un conjunto con formato json de los términos a los que está llamando. No hay ninguna llamada DELETE explícita; sin embargo, puede simplemente realizar un POST con contenido vacío para eliminar un elemento.

La dirección para esta consulta es:
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=environmentType_storeID_product_stopwords&locale=en_US
Donde environmentType es o es:
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=environmentType_storeID_product_stopwords&locale=en_US
Donde environmentType es de creación o producción.
La respuesta contendrá un conjunto de palabras frecuentes, como en el ejemplo siguiente.
{    
"the": "",
"and":""
} 
Opciones de consulta de ZooKeeper
"http://search_server:30920/search/resources/api/v2/configuration?nodeName&locale-en_US
donde nodeName es el espacio flattenednamespace para el índice.

Actualización de sinónimos y términos de sustitución

También puede actualizar sinónimos y términos de sustitución mediante la configuración del servicio de consulta de la API de REST. Las llamadas permitidas son GET, POST y PATCH. Por ejemplo, en el caso de una llamada GET, el cuerpo de respuesta contiene un conjunto con formato json de los términos a los que está llamando. No hay ninguna llamada DELETE explícita; sin embargo, puede simplemente realizar un POST con contenido vacío para eliminar un elemento.

La dirección para esta consulta es:
http://data_environment_hostname:30920/search/resources/api/v2/configuration?nodeName=environmentType_storeID_product_sta&locale=en_US
La respuesta contendrá un conjunto de sinónimos, como en el ejemplo siguiente.
{    
"couch, sofa": ""  ,  
"coff => coffee": "" ,
"driveway, road, street": "" , 
...} 
Los sinónimos pueden ser palabras simples emparejadas con un término original en una lista una tras otra. Esto es similar a la estructura que se utiliza para las palabras frecuentes, aunque hay varias formas de que la notación se interprete para la lista en función de los valores. Los valores predeterminados para interpretar la lista son:
  • expand = true
  • lenient = false
Para obtener una descripción completa de cómo Elasticsearch usa estos valores, consulte el Filtro de token de sinónimos en la referencia Elasticsearch. Esta flexibilidad en la construcción e interpretación de la lista de sinónimos es lo que requiere la distinción entre sinónimo y STA en la implementación de Commerce Elasticsearch.

Para obtener información sobre cómo ajustar el proceso de sinónimos, consulte Configuraciones relacionadas con sinónimos.

Trabajar con STA

Las asociaciones de términos de búsqueda son funcionalmente las mismas que los sinónimos y se almacenan en el mismo formato en ZooKeeper. Elasticsearch trata las STA de la misma manera que Solr; para obtener más información, consulte Asociaciones de términos de búsqueda. Las STA de Elasticsearch se generan utilizando el mismo mecanismo que utiliza el motor de búsqueda Solr, en lugar del mecanismo de llamada REST utilizado para sinónimos y palabras frecuentes. El proceso consiste en que, cuando se guarda una STA en , se realiza una actualización Near Realtime y se sobrescribe la lista de STA existente en ZooKeeper con una nueva lista de la base de datos.

Puede realizar un Get para verificar los cambios.

{
   "couch, sofa": "" 
   ...
}