Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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
Search 有人配置了apache solr FieldReaderDataSource吗?_Search_Solr_Datasource - Fatal编程技术网

Search 有人配置了apache solr FieldReaderDataSource吗?

Search 有人配置了apache solr FieldReaderDataSource吗?,search,solr,datasource,Search,Solr,Datasource,我有一个包含xml的datbase列,我想在该列中使用ApacheSolr内容编制索引,我有下面的data-config.xml(配置)。数据库名为“solrdb”,列名为“xmlfield”,其中似乎存在一些问题,错误在底部指定 <dataConfig> <!--Data source to connect to database--> <dataSource name="XmlDocDS"

我有一个包含xml的datbase列,我想在该列中使用ApacheSolr内容编制索引,我有下面的data-config.xml(配置)。数据库名为“solrdb”,列名为“xmlfield”,其中似乎存在一些问题,错误在底部指定

<dataConfig>
        <!--Data source to connect to database-->
        <dataSource 
            name="XmlDocDS" 
            type="JdbcDataSource" 
            driver="com.mysql.jdbc.Driver" 
            url="jdbc:mysql://127.0.0.1/solrdb" 
            user="root" 
            password="root" /> 
        <!-- Data Source for getting xml columne data-->    
        <dataSource 
            name="solrFieldReaderDS" 
            type="FieldReaderDataSource"/>
        <document>
            <entity 
                name="xmltable"
                rootEntity="false"
                datasource="XmlDocDS"
                query="select xmlfield from xmltable">
                <field column="xmldata" blob="true" />
                <entity 
                    name="page" 
                    dataSource="solrFieldReaderDS" 
                    dataField="xmltable.xmldata"                 
                    processor="XPathEntityProcessor"             
                    forEach="/page"> 
                    <field column="id" xpath="/mediawiki/page/id"/> 
                    <field column="Title" xpath="/mediawiki/page/title"/> 
                </entity> 
            </entity>
        </document>
</dataConfig>

此部分JDBC导入程序代码中会引发错误:

try {
    Connection c = getConnection();
    stmt = c.createStatement(ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
    stmt.setFetchSize(batchSize);
    stmt.setMaxRows(maxRows);
    LOG.debug("Executing SQL: " + query);
    long start = System.currentTimeMillis();
    if (stmt.execute(query)) {
      resultSet = stmt.getResultSet();
    }
    LOG.trace("Time taken for sql :"
            + (System.currentTimeMillis() - start));
    colNames = readFieldNames(resultSet.getMetaData());
  } catch (Exception e) {
    wrapAndThrow(SEVERE, e, "Unable to execute query: " + query);
  }

因此,连接或查询中可能会出现错误(smth是否与DB错误?)。还有“执行SQL”和“SQL花费的时间”的grep日志:

连接中有一个错误,由于某种原因,它无法连接到我的本地计算机,我更改了数据库主机,它已连接!,问题是我已经准备好了配置,FieldReaderDataSource似乎工作得很好,但现在当它完成所有操作时,它会说documents indexed/Update=0

这是我的xml配置

<dataSource
        name="jdbcDataSource"
        driver="com.mysql.jdbc.Driver"
        url="xxxx"
        user="yyyy"
        password="zzzz" readOnly="true"/>

        <dataSource 
            name="solrFieldReaderDS" 
            type="FieldReaderDataSource"/>
        <document>
            <entity
                name="tabledata"
                dataSource="jdbcDataSource"
                query="select codeID,codeText from ArticlePoolState where codeID=3">
                <entity 
                    name="xmldata" 
                    dataSource="solrFieldReaderDS" 
                    forEach="/med"
                    dataField="tabledata.codeText"               
                    processor="XPathEntityProcessor"> 
                    <field column="title" xpath="/title"/> 
                </entity>
            </entity>
        </document>

这个问题很好

<dataSource
        name="jdbcDataSource"
        driver="com.mysql.jdbc.Driver"
        url="xxxx"
        user="yyyy"
        password="zzzz" readOnly="true"/>

        <dataSource 
            name="solrFieldReaderDS" 
            type="FieldReaderDataSource"/>
        <document>
            <entity
                name="tabledata"
                dataSource="jdbcDataSource"
                query="select codeID,codeText from ArticlePoolState where codeID=3">
                <entity 
                    name="xmldata" 
                    dataSource="solrFieldReaderDS" 
                    forEach="/med"
                    dataField="tabledata.codeText"               
                    processor="XPathEntityProcessor"> 
                    <field column="title" xpath="/title"/> 
                </entity>
            </entity>
        </document>