使用SQLServer查询elasticSearch数据

时间:2016-07-24 03:28:22

标签: sql sql-server jdbc elasticsearch linked-server

在我的用例中,ElasticSearch已经配置并且具有可以通过REST API查询的数据。我想知道是否有办法编写可以查询已配置ElasticSearch的数据的SQL语句。

示例,在MS SQLServer中为ElasticSearch配置适配器,并使用linkedserver连接并运行普通的SQL语句。

我读过关于“河流”的文章,但它似乎与我正在寻找的相反。任何指针都会有所帮助。

2 个答案:

答案 0 :(得分:3)

SQL Server是一个关系数据库。它与表格共同运作。向某些URI发送请求对于SQL Server来说是非常不寻常的工作。而且没有标准的机制可以做到这一点。

你能做什么:

  1. 撰写CLR-function to send post-requests
  2. 将结果json映射到某个表(可能很难,因为Elastic Search是面向文档的,而SQL Server不是)
  3. 所以,对我来说,这种方式非常复杂。我建议使用一些手写服务来操作DB和Elastic Search,并且不要试图将所有逻辑都放到SQL Server中。

答案 1 :(得分:2)

类似Elasticsearch-SQL插件的内容可能会让您感兴趣。 这不允许您将它用作MSSQL中的链接服务器,但它将允许您拥有的任何应用程序,将SQL查询发送到ElasticSearch服务器上的sql API并获得结果。

实施例: http://localhost:9200/_sql?sql=select * from indexName limit 10