您好我已将Solr配置从正常工作的Windows服务器复制到新服务器,但似乎无法运行导入。
他们都使用win server 2008和SQL 2008R2。这是数据导入配置:
<dataConfig>
<dataSource type="JdbcDataSource" name="ds1"
driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://localhost;databaseName=DB"
user="Solr"
password="pwd"/>
<document name="datas">
<entity name="data" dataSource="ds1" pk="key"
query="EXEC SOLR_COMPANY_SEARCH_DATA"
deltaImportQuery="SELECT * FROM Company_Search_Data WHERE [key]='${dataimporter.delta.key}'"
deltaQuery="SELECT [key] FROM Company_Search_Data WHERE modify_dt > '${dataimporter.last_index_time}'">
<field column="WorkDesc_Comments" name="WorkDesc_Comments_Split" />
<field column="WorkDesc_Comments" name="WorkDesc_Comments_Edge" />
</entity>
</document>
</dataConfig>
我可以使用MS SQL Profiler成功观看Solr用户登录,但之后什么都没有。它似乎甚至没有尝试执行存储过程。任何想法为什么这将是一个服务器而不是另一个服务器?
FTR在tomcat catalina日志中唯一的东西是:
org.apache.solr.handler.dataimport.JdbcDataSource$1 call
INFO: Creating a connection for entity data with URL: jdbc:sqlserver://localhost;databaseName=CATLive
更新 来自Solr Mailing列表的Me和Yavar Husain都提出了用开源替换MS JDBC驱动程序的解决方案 - 这似乎有效,并且意味着这必须是最新版本的Java,DIH和之间的兼容性问题。 MS JDBC驱动程序。
更新2: 已经报告了Java 1.6.0_29 - 我正在运行的问题! http://blogs.msdn.com/b/jdbcteam/archive/2011/11/07/supported-java-versions-november-2011.aspx
答案 0 :(得分:4)
这看起来是由Java 1.6.0_29的发布引起的 - 我正在运行它: http://blogs.msdn.com/b/jdbcteam/archive/2011/11/07/supported-java-versions-november-2011.aspx
答案 1 :(得分:3)
看到问题只能出现在JDBC驱动程序或配置中,我通过用jTDS Open Source JDBC driver替换它来解决这个问题。当我得到它时,我的配置就像这样:
<dataConfig>
<dataSource type="JdbcDataSource"
driver="net.sourceforge.jtds.jdbc.Driver"
url="jdbc:jtds:sqlserver://localhost;databaseName=DBName"
user="Solr"
password="password" name="ds1"/>
<document>
<entity dataSource="ds1" name="sometext"
query="SELECT * FROM mytable">
</entity>
</document>
</dataConfig>
HTH某人 - 但我不是这个标记作为答案,因为我不明白为什么我不能使用MS驱动程序...
答案 2 :(得分:0)
我猜你错过了这个
<强> URL = “JDBC:MySQL的://本地主机/ DBNAME”强>
dbname - &gt; \ SQL2008
答案 3 :(得分:0)
我认为当您将Solr配置复制到新服务器时,您也已经获取了索引文件。我怀疑问题是由于Solr已将索引数据编入索引。您的查询表明您只想索引自上一个索引以来发生更改的文件。
这有意义吗?
答案 4 :(得分:0)
问题似乎只发生在Java运行时的非常特定的版本上,并影响到仅仅是solr之外的应用程序。这让我相信根本原因是Java运行时和Microsoft SQL Server JDBC驱动程序之间的不兼容或错误,而不是Solr问题。
在我的特定情况下,我们有两组,每组包含3台服务器。一组没有表现出这个问题的症状,而另一组则表现出问题。所有服务器都运行Solr 3.4.0,以及相同版本的SQL Server JDBC驱动程序3.0。所有服务器也运行JRE 1.6.0_20,但经过仔细检查后发现问题服务器正在使用稍微更新的1.6.0_20包(通过yum
分发的不同RPM) CentOS的)。
通过将问题服务器降级到已知良好服务器上的java版本,问题立即消失。
具体来说,