Puede hacer esto creando un segundo índice en su clúster ES. Cuando un usuario envía una búsqueda a través de su aplicación, realiza dos pasos.
- Envíe la búsqueda como una consulta a Elasticsearch para un comportamiento de búsqueda normal.
- Envíe una solicitud de índice al clúster con los términos de búsqueda proporcionados por el usuario.
Con un segundo índice de todos los términos de búsqueda que se han enviado, puede hacer una serie de cosas interesantes. Para su caso, puede tener un campo de 'recuento' como en SQL que incrementa a medida que más personas buscan ese término. Otro gran caso de uso son los términos recomendados al estilo de Google. Su interfaz de usuario puede enviar una solicitud de búsqueda con el texto ingresado en cada pulsación de tecla y completar un menú desplegable con resultados de los términos buscados anteriormente. Incluso puede personalizar esto agregando un campo de usuario y filtrando los resultados que no sean de ese usuario en particular.
Lo que hay que tener en cuenta es que ElasticSearch se puede utilizar como almacén de datos primario y secundario. Sin embargo, siempre sugiero que solo conserve los datos que está dispuesto a perder (como el historial de búsqueda) como datos primarios. Mantenga los datos críticos de su sistema en un almacén de datos más tradicional como SQL, de esa manera es fácil hacer una copia de seguridad y restaurar si algo sale mal.