elasticsearch,lucene,full-text-search,Mysql,Postgresql,elasticsearch,Lucene,Full Text Search" /> elasticsearch,lucene,full-text-search,Mysql,Postgresql,elasticsearch,Lucene,Full Text Search" />

Mysql 在ElasticSearch中保存用户搜索查询的最佳方法?

Mysql 在ElasticSearch中保存用户搜索查询的最佳方法?,mysql,postgresql,elasticsearch,lucene,full-text-search,Mysql,Postgresql,elasticsearch,Lucene,Full Text Search,我正在开发使用ElasticSearch和SQL数据库的应用程序。 那么,保存用户搜索查询并显示统计数据(如最流行的请求)的最佳方法是什么?简单的方法是保存在SQL数据库中并计数。但也许ElasticSearch中内置了一些技术?您可以通过在ES集群中创建第二个索引来实现这一点。当用户通过应用程序提交搜索时,需要执行两个步骤 将搜索作为查询提交给Elasticsearch以了解正常的搜索行为 使用用户提供的搜索词向集群提交索引请求 有了第二个索引,所有已经提交的搜索词,你可以做很多整洁的事情。对

我正在开发使用ElasticSearch和SQL数据库的应用程序。
那么,保存用户搜索查询并显示统计数据(如最流行的请求)的最佳方法是什么?简单的方法是保存在SQL数据库中并计数。但也许ElasticSearch中内置了一些技术?

您可以通过在ES集群中创建第二个索引来实现这一点。当用户通过应用程序提交搜索时,需要执行两个步骤

  • 将搜索作为查询提交给Elasticsearch以了解正常的搜索行为
  • 使用用户提供的搜索词向集群提交索引请求
  • 有了第二个索引,所有已经提交的搜索词,你可以做很多整洁的事情。对于您的情况,您可以有一个“count”字段,就像在SQL中一样,随着越来越多的人搜索该术语,该字段会增加。另一个很好的用例是谷歌风格的推荐术语。您的UI可以在每次按键时提交一个包含输入文本的搜索请求,并用以前搜索的词的点击量填充下拉列表。您甚至可以通过添加用户字段并过滤掉不是来自该特定用户的结果来对此进行个性化设置


    需要记住的是,ElasticSearch可以用作主数据存储和辅助数据存储。我总是建议您只保留您愿意丢失的数据(如搜索历史记录)作为主要数据。将您的系统关键数据保存在更传统的数据存储(如SQL)中,这样在出现任何问题时都可以轻松备份和恢复

    我想知道为什么这个功能不是内置的,如果你能命名查询并保存它们,那就太好了