我的问题是我需要对来自两个不同数据源的数据进行排序,一个是MySQL数据库,其中包含有关某些产品的信息;另一个是PostgreSQL,其中包含与这些产品相关的一些度量。
因为数据位于两个不同的数据源中,所以我不能开箱即用地提出一个性能查询,该查询将在数据库级别进行排序(分页)。 我需要进行两个不同的查询,然后手动合并数据并执行排序和分页代码端。 我希望尽可能避免创建自定义的分页系统和手动数据合并,并尽可能避免将此工作委派给基础数据库。
这就是我认为诸如ElasticSearch(或Solr,但ES似乎更易于使用)之类的系统可以提供帮助的地方。
1)ES是否提供将2个数据源合并为1个文档的工具或机制?还是需要由第三方工具完成这项工作,该工具会定期从两个数据源中提取数据并创建/更新文档?
2)我正确地假设,由于ES无法执行联接查询,因此具有2个索引(或2个不同的文档类型)是没有意义的吗?
3)除了创建单个文档外,ES还有什么其他解决方案可以帮助ES?是否有可能“以某种方式”将index1中的datasource1数据和index2中的datasource2数据包含在内,所以我可以同时使用两个索引执行多个搜索查询(因为联接是不可行的)。
答案 0 :(得分:0)
ES是否提供将2个数据源合并为1个文档的工具或机制?还是需要由第三方工具完成这项工作,该工具会定期从两个数据源中提取数据并创建/更新文档?
有两种方法可以做到这一点:
3)除了创建单个文档外,ES还有什么其他解决方案可以帮助ES?是否有可能“以某种方式”将index1中的datasource1数据和index2中的datasource2数据包含在内,所以我可以同时使用两个索引执行多个搜索查询(因为联接是不可行的)。
通过多个索引执行单个查询非常容易。 Answers here