首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从mysql导入apache数据

从mysql导入apache数据
EN

Stack Overflow用户
提问于 2014-02-26 07:20:29
回答 2查看 1.4K关注 0票数 0

我不知道出了什么问题,但我无法从solr数据导入中获取数据。

db-data-config.xml

代码语言:javascript
复制
<?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

代码语言:javascript
复制
   <!-- Jobs Field-->
    <field name="job_title" type="string" indexed="true" stored="true"/> 

solrconfig.xml

代码语言:javascript
复制
  <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler> 

但是,当我尝试使用下面的url运行数据导入时

代码语言:javascript
复制
http://localhost:8080/solr/dataimport?command=full-import

我一直都在想:-

代码语言:javascript
复制
<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>

知道是怎么回事吗。

EN

回答 2

Stack Overflow用户

发布于 2014-02-26 10:27:31

我认为您必须执行以下步骤才能使数据导入工作。

1)包括您正在使用的数据库的JDBC连接器,即MySQL、DB2等。在您的核心下的MySQL文件中包含以下JAR。

代码语言:javascript
复制
<lib dir="../../../contrib/dataimporthandler/lib/" regex=".*\.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-\d.*\.jar" />
<lib dir="../../lib/" regex="db2jcc*\.jar" />

上述方法适用于DB2服务器。

还要确保在您的requestHandler文件中有以下solrconfig.xml

代码语言:javascript
复制
<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

代码语言:javascript
复制
<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通过http://hostname:8983/solr/#/corename/dataimport//dataimport执行导入

SOLR专家,如果我忘了什么,请告诉我。

祝好运。

票数 1
EN

Stack Overflow用户

发布于 2014-02-26 07:39:38

修改URL并检查。

代码语言:javascript
复制
url="jdbc:mysql://localhost:3306/delance"

提供URL "jdbc:mysql://IP:PORT/database“是一个很好的实践

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22034467

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档