有关将SQL Server数据移动到NoSQL或ES / Solr的建议

时间:2017-03-01 09:51:53

标签: sql-server elasticsearch solr nosql

我使用Webforms db支持SQL server应用程序。

我们在应用程序中有一个查找功能,它基本上是从数据库中读取的,基于在查找页面中选择的过滤条件。我想让它更具性能和动态,类似于搜索引擎。

我尝试将数据从SQL Server移至ES,但未成功。我还需要将数据实时移动到NoSQL db或搜索引擎。

ES / SolrNoSQL是否可以直接从SQL Server读取?这会导致延迟吗?

如果上述描述含糊不清,请致歉,但我最初试图深入了解可能的选项。

提前致谢。

1 个答案:

答案 0 :(得分:0)

那么你想要的是什么(如果我错了,请纠正我)是将所有数据从SQL服务器传输到Solr?

如果是这种情况,那么您可以使用JDBC和托管架构来执行此操作。 JDBC本质上允许您将Solr连接到SQL数据库,执行查询并为结果编制索引。这可以与Solr的数据导入处理程序一起使用,但是DIH有点废话,不适合生产环境(虽然可以接受一次性索引),请参阅this link。我之所以遇到问题只是没有工作而且是一般的粪便。

JDBC并不是特定于Solr的,它只是一个连接到数据库,执行查询并接收结果的Java程序。制作自己的SQL结果,将它们格式化为Solr友好格式并将它们发布到您的核心/集合中并不困难。 Here's介绍了JDBC,还有更多的内容。

托管架构只是一种灵活的架构,它可以根据需要推断您的字段类型并创建它们,这对于第一次传递很有用,直到您需要微调架构为止。因此,当SQL结果被索引时,Solr将只为每列创建一个字段类型。

因此,通过一些编码和配置,你可以这样得到它:

  1. 使用默认架构和配置
  2. 创建Solr核心/集合
  3. 创建JDBC以连接到您的数据库并执行必要的查询
  4. 让JDBC将SQL结果转换为Solr友好的方式(那里也应该有关于它的信息,它并不太难,Solr会采用多种格式)
  5. 将结果发布到您的核心/集合
  6. 运行JDBC