2016-04-15 138 views
0

我正在开发使用ElasticSearch和SQL数据库的应用程序。 那么,什么是最好的方式来保存用户的搜索查询和显示统计信息,如最受欢迎的请求?简单的方法是保存在SQL数据库和计数。但是也许在ElasticSearch中构建了一些技术?在ElasticSearch中保存用户搜索查询的最佳方式?

回答

3

您可以通过在ES群集中​​创建第二个索引来完成此操作。当用户通过应用程序提交搜索时,执行两个步骤。

  1. 将搜索作为查询提交给Elasticsearch以进行正常搜索行为。
  2. 使用用户提供的搜索条件向集群提交索引请求。

对于已提交的所有搜索字词的第二个索引,您可以做许多简洁的事情。对于你的情况,你可以像在SQL中那样拥有一个'count'字段,随着更多人搜索该字词,你可以增加字段。另一个很好的用例是Google风格推荐条款。您的用户界面可以在每次按键时使用输入的文本提交搜索请求,并使用之前搜索的字词进行填充。您甚至可以通过添加用户字段并过滤掉不是来自特定用户的结果来个性化这一点。

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

相关问题