我不知道什么是错的,但我无法从solr数据导入中获取数据。
DB-数据-config.xml中
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource name="data_so" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/delance" user="user" password="user"/>
<document>
<entity name="table_name" query="select * from table_name" >
<field name="solr_field_map" column="table_column_name" />
<field name="name" column="name" />
</entity>
<entity dataSource="data_so" name="Jobs" query="select job_title from Jobs">
<field name="job_title" column="job_title" />
</entity>
</document>
</dataConfig>
schema.xml中
<!-- Jobs Field-->
<field name="job_title" type="string" indexed="true" stored="true"/>
solrconfig.xml中
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
但是当我尝试使用以下网址运行数据导入时
http://localhost:8080/solr/dataimport?command=full-import
我一直都这样: -
<response>
<lst name="responseHeader">
<int name="status">0</int>
<int name="QTime">0</int>
</lst>
<lst name="initArgs">
<lst name="defaults">
<str name="config">db-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:14:54.768</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">2014-02-26 12:30:42</str>
<str name="">Indexing failed. Rolled back all changes.</str>
<str name="Rolledback">2014-02-26 12:30:42</str>
</lst>
<str name="WARNING">This response format is experimental. It is likely to change in the future.</str>
</response>
知道什么是错的。
答案 0 :(得分:1)
我认为您必须执行以下步骤才能使数据导入生效。
1)包括您正在使用的数据库的JDBC连接器,即MySQL,DB2等。在您的核心下的 solrconfig.xml 文件中包含以下JAR。
<lib dir="../../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
<lib dir="../../lib/" regex="db2jcc*\.jar" />
以上适用于DB2服务器。
还要确保在solrconfig.xml文件中有以下requestHandler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
2)通过连接测试确保JDBC连接实际成功,并验证SELECT查询是否正确。
3)编辑您正在使用的核心中的data-config.xml
<dataConfig>
<dataSource driver="com.ibm.db2.jcc.DB2Driver"
user="username"
url="jdbc:db2://hostname:50000/DATABASE_NAME"
password="password"
autoCommit = "true"/>
<document name="customers">
<entity name="customers" query="
SELECT id, customer_name as street_addr FROM customers
" >
<field column="id" name="id"/>
<field column="name" name="name" />
</entity>
</document>
</dataConfig>
4)确保您在导入字段列表中有一个唯一字段,否则您必须自己创建一个uuid。
5)使用SOLR UI interace通过http://hostname:8983/solr/#/corename/dataimport//dataimport
SOLR专家,如果我忘了什么,请告诉我。
祝你好运。答案 1 :(得分:0)
修改网址并检查。
url="jdbc:mysql://localhost:3306/delance"
提供URL“jdbc:mysql:// IP:PORT / database”是一个很好的做法