我正在开发使用 ElasticSearch 和 SQL 数据库的应用程序。
那么,保存用户搜索查询并显示统计信息(例如最流行的请求是什么)的最佳方法是什么?最简单的方法就是保存在SQL数据库中并统计。但也许 ElasticSearch 中内置了一些技术?
您可以通过在 ES 集群中创建第二个索引来做到这一点。当用户通过您的应用程序提交搜索时,您需要执行两个步骤。
- 将搜索作为查询提交到 Elasticsearch 以获得正常的搜索行为。
- 使用用户提供的搜索词向集群提交索引请求。
通过已提交的所有搜索词的第二个索引,您可以做许多巧妙的事情。对于您的情况,您可以像 SQL 中一样拥有一个“计数”字段,随着越来越多的人搜索该术语,该字段会增加。另一个很好的用例是谷歌风格的推荐术语。您的 UI 可以在每次按键时提交包含输入文本的搜索请求,并使用之前搜索的术语的匹配项填充下拉列表。您甚至可以通过添加用户字段并过滤掉不是来自该特定用户的结果来对此进行个性化。
需要记住的是,ElasticSearch 既可以用作主数据存储,也可以用作辅助数据存储。我始终建议您只将愿意丢失的数据(例如搜索历史记录)保留为主要数据。将系统关键数据保存在更传统的数据存储中,例如 SQL,这样在出现问题时可以轻松备份和恢复!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)