2016-07-24 83 views
2

在我的使用案例中,ElasticSearch已經配置,並且可以通過REST API查詢數據。我想知道是否有辦法編寫SQL語句,可以查詢已配置ElasticSearch的這些數據。使用SQLServer查詢elasticSearch數據

示例,在MS SQLServer中將適配器配置爲ElasticSearch,並使用linkedserver連接並運行正常的SQL語句。

我已閱讀了關於「河流」的內容,但它似乎與我所尋找的相反。任何指針都會有幫助。

回答

3

SQL Server是一個關係數據庫。它與表共同操作。將請求發佈到某個URI對於SQL Server來說是非常不尋常的工作。並沒有標準的機制來做到這一點。

你可以做的:

  1. CLR-function to send post-requests
  2. 地圖結果JSON一些表(它可以是困難的,因爲彈性搜索是面向文檔和SQL Server不是)

所以,對我而言,這種方式非常複雜。我建議使用一些手寫服務來使用數據庫和彈性搜索,並且不要嘗試將所有邏輯都放到SQL Server上。

2

類似Elasticsearch-SQL插件可能會對您感興趣。 這將不允許您將它用作MSSQL中的鏈接服務器,但它將允許您擁有的任何應用程序將SQL查詢發送到ElasticSearch服務器上的sql API並獲取結果。

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