2

因此,我一直致力于使用 JDBC River 插件实现弹性搜索,以将 SQL Server DB 中的数据获取到弹性搜索中。

我使用 SQL Server 凭据可以正常工作,但尝试使用集成安全性不起作用。它将创建索引,但其中没有数据。我一直在使用的参数是:

  PUT /_river/test_river/_meta 
    {  
       "type":"jdbc",
       "jdbc":
             {
                "driver":"com.microsoft.sqlserver.jdbc.SQLServerDriver", 
                "url":"jdbc:sqlserver://testServer:1433;databaseName=TestDb;
                integratedSecurity=true;",
                "user":"",
                "password":"",
                "sql": "select * from users",
                "poll":"30s",
                "index":"testindex",
                "type":"testusers"
             }
     }

我已经尝试了很多东西,包括完全删除用户和密码字段,删除integratedSecurity=true,但它给出了相同的结果。我已经在他们的 github 上查看了 River 插件,它说这个问题在一月份已经修复,但它似乎仍然没有工作。

我也在使用弹性搜索版本:1.5.1 和 jdbc River 插件版本:1.4.0.10

任何帮助将非常感激

4

1 回答 1

3

摆脱用户和密码选项。你不会需要它们。

运行 elasticserch.bat 时检查控制台,当它尝试更新河流时,您应该会看到一条错误消息。我将四处走动,并假设您可能会看到一个错误,指出sqljdbc_auth.dll无法找到该文件。如果是这种情况,您可以从此处下载此文件并将 x64 版本复制sqljdbc_auth.dll到您的 java lib 文件夹中。对我来说,这个文件夹是,C:\ProgramData\Oracle\Java\javapath但你可以echo %path%在控制台窗口中输入来找到你的。

完成这些步骤后,重新启动 elasticsearch.bat,它应该开始处理您的河流。如果没有,请使用运行 elasticsearch.bat 时看到的输出发回。

于 2015-04-26T01:17:04.027 回答