Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 无法使用SOLR DataImportHandler从数据库获取任何行_Mysql_Solr_Dataimporthandler - Fatal编程技术网

Mysql 无法使用SOLR DataImportHandler从数据库获取任何行

Mysql 无法使用SOLR DataImportHandler从数据库获取任何行,mysql,solr,dataimporthandler,Mysql,Solr,Dataimporthandler,在我第一次尝试使用SOLR-DIH索引DB数据时,有一个简单的测试数据库设置。不幸的是,每次完全导入都会得到以下结果: <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">15</int> </lst> <lst name="initArgs"> <lst name="defaul

在我第一次尝试使用SOLR-DIH索引DB数据时,有一个简单的测试数据库设置。不幸的是,每次完全导入都会得到以下结果:

<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">15</int>
</lst>
<lst name="initArgs">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</lst>
<str name="command">full-import</str>
<str name="status">idle</str>
<str name="importResponse"/>
<lst name="statusMessages">
<str name="Time Elapsed">0:0:2.187</str>
<str name="Total Requests made to DataSource">1</str>
<str name="Total Rows Fetched">0</str>
<str name="Total Documents Processed">0</str>
<str name="Total Documents Skipped">0</str>
<str name="Full Dump Started">2011-03-06 21:30:07</str>
<str name="">Indexing failed. Rolled back all changes.</str>
<str name="Rolledback">2011-03-06 21:30:07</str>
</lst>
<str name="WARNING">
This response format is experimental.  It is likely to change in the future.
</str>
</response>

请直接在MySQL中从data-config.xml运行查询,并检查是否返回任何行


另外,如果您正在使用Tomcat,请检查您的服务器catalina.out的错误日志,并在那里发布任何错误消息。

查看SOLR日志,每当索引失败时,它将打印stacktrace。

您当然在schema.xml中添加了business\u id、business\u name、address1、address2、city、state、zip字段

您能在服务器的日志中找到任何错误吗

如果只有一个数据源,我不确定是否需要命名数据源,但这是告诉实体要使用哪个数据源的方法:

<dataConfig>

    <dataSource 
        name="dev" 
        driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        encoding="UTF-8"
        url="jdbc:sqlserver://____:1433;databaseName=____"
        user="____" 
        password="____" 
        readOnly="true" 
        autoCommit="false" />


    <document>
        <entity 
            name="metadataObject" 
            dataSource="dev" 
            pk="ITEM_MOID" 
            transformer="RegexTransformer,DateFormatTransformer"        
            query="___"

            ...

    </document>
</dataConfig>

您是使用ssh还是隧道连接到远程数据库?在我看来,您正在连接到远程数据库。尝试连接到本地mysql服务器,如果它起作用,那么您在使用SSH连接时会遇到问题

您在此发布的data-config.xml,在url部分url=jdbc中:mysql://localhost:8889/Dev1 . 请将其更改为url=jdbc:mysql://localhost/Dev1 您已经将jdbc驱动程序放在lib目录中了。请检查jdbc驱动程序在lib目录中的位置是否…

这是一个长期问题,但根据您的Solr日志,您的服务器似乎已启用ipv6

默认情况下,某些应用程序不支持ipv6,您可能需要检查MySQL配置,以确保它允许通过环回接口上的ipv6进行连接

例如,请参阅MySQL 5.5版指南:

特别是,上述指南中的步骤3和4可用于测试连接性,例如:

shell> mysql -h localhost -u root -pYourRootPassword

mysql> STATUS

我也有类似的问题。如果schema.xml或托管架构包含id或唯一id,如下面所示 前任:


然后,您需要在data-config.xml中选择此字段作为主键,或使用required=true设置新键,或删除此部分。

mbonaci,是的,我确实将字段添加到schema.xml中,但忘了在此处发布。我将添加以上和post solr日志内容。您使用的是哪台服务器?杰蒂,汤姆猫?我在用杰蒂。我将进行您在上面建议的更改,并在完成后发回。nikil500,我可以直接从data-config.xml文件运行查询,并返回phpmyadmin中business_profile表中的所有行。当然,这是一个很好的提示。但是如果日志是空的,并且索引不起作用怎么办??
<field name="business_id" type="int" indexed="true" stored="true"/>
<field name="business_name" type="string" indexed="true" stored="true"/>
<field name="address1" type="string" indexed="true" stored="true"/>
<field name="address2" type="string" indexed="true" stored="true"/>
<field name="city" type="string" indexed="true" stored="true"/>
<field name="state" type="string" indexed="true" stored="true"/>
<field name="zip" type="string" indexed="true" stored="true"/>
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:50:41 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 853 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:50:47 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 851 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:51:03 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 853 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:51:13 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 852 
0:0:0:0:0:0:0:1%0 -  -  [07/03/2011:17:51:14 +0000] "GET /solr/dataimport?command=full-import&mode=debug HTTP/1.1" 200 852 
<dataConfig>

    <dataSource 
        name="dev" 
        driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
        encoding="UTF-8"
        url="jdbc:sqlserver://____:1433;databaseName=____"
        user="____" 
        password="____" 
        readOnly="true" 
        autoCommit="false" />


    <document>
        <entity 
            name="metadataObject" 
            dataSource="dev" 
            pk="ITEM_MOID" 
            transformer="RegexTransformer,DateFormatTransformer"        
            query="___"

            ...

    </document>
</dataConfig>
shell> mysql -h localhost -u root -pYourRootPassword

mysql> STATUS