我的问题是,我需要对来自两个不同数据源的数据执行排序,一个是包含一些产品信息的MySQL数据库,另一个是包含链接到这些产品的一些指标的PostgreSQL。
因为数据驻留在两个不同的数据源中,所以我不能想出一个可以在数据库级别进行排序(分页)的性能查询。我需要进行两个不同的查询,然后手动合并数据,并在代码端执行排序和分页。我希望尽可能避免创建自定义分页系统和手动数据合并,并尽可能将此工作委托给底层数据库。
这就是我认为像ElasticSearch (或Solr,但ES似乎更容易使用)这样的系统可以提供帮助的地方。
1) ES是否提供了将两个数据源合并为一个文档的工具或机制?或者这项工作需要由第三方工具来完成,该工具将定期从两个数据源提取数据并创建/更新文档?
2)我假设有两个索引(或两个不同的文档类型)在我的情况下是没有意义的,因为ES不能执行连接查询,这是正确的吗?
3)除了创建一个单独的文档之外,我还有什么其他的解决方案可以帮助ES?有没有可能“以某种方式”,将datasource1数据放在index1中,将datasource2数据放在index2中,我就可以同时使用这两个索引执行多个搜索查询(因为连接是不可能的)。
发布于 2019-03-23 19:17:04
ES是否提供了将两个数据源合并为一个文档的工具或机制?或者这项工作需要由第三方工具来完成,该工具将定期从两个数据源提取数据并创建/更新文档?
有两种方法可以实现这一点:
即可完成此操作
3)除了创建一个单独的文档之外,我还有什么其他的解决方案可以帮助ES?有没有可能“以某种方式”,将datasource1数据放在index1中,将datasource2数据放在index2中,我就可以同时使用这两个索引执行多个搜索查询(因为连接是不可能的)。
通过多个索引执行单个查询非常容易。Answers here
https://stackoverflow.com/questions/55308951
复制相似问题