1

我无法让 solr 索引我的 xml 文件。我正在使用 DIH 句柄来导入 xml。

以下是我的 xml 数据文件的一部分,名称为 hw1.xml

<note>
  <to>Tove</to>
  <from>Jani</from>
  <heading>Reminder</heading>
  <body>Don't forget me this weekend!</body>
</note>

下面是我的架构文件

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="ECPS_Schema" version="1.5">
  <fields>
    <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="to" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="from" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="heading" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="body" type="string" indexed="true" stored="true" required="true" multiValued="false" />
    <field name="text" type="text_field" indexed="true" stored="true" />
    <field name="_version_" type="long" indexed="true" stored="true"/>
  </fields>
  <uniqueKey>id</uniqueKey>

  <copyField source="to" dest="text"/>
  <copyField source="from" dest="text"/>
  <copyField source="heading" dest="text"/>
  <copyField source="body" dest="text"/>

  <types>
    <fieldType name="string" class="solr.StrField" sortMissingLast="true" />
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="text_field" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
      </analyzer>
    </fieldType>
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
  </types>
</schema>

下面是我的数据配置文件

<dataConfig>
  <dataSource type="FileDataSource" encoding="UTF-8" />
  <document>
    <entity name="page" processor="XPathEntityProcessor" stream="true" forEach="/doc" url="/opt/solr-4.4.0/solr/example/exampledocs" forEach="/note" transformer="RegexTransformer,DateFormatTransformer">
      <field column="file" name="id"/>
      <field column="to" xpath="/note/to" indexed="true" multiValued="false"/>
      <field column="from" xpath="/note/from" indexed="true" multiValued="false"/>
      <field column="heading" xpath="/note/heading" indexed="true" multiValued="false"/>
      <field column="body" xpath="/note/body" indexed="true" multiValued="false"/>
    </entity>
  </document>
</dataConfig>

我将此添加到我的 solrconfig.xml 中,

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
  <lst name="defaults">
    <str name="config">data-config.xml</str>
  </lst>
</requestHandler>

我的问题是,由于我使用的是 DIH,并且 data-config 文件具有指示 xml 文件位置的 url 参数,我是否需要执行其他任何操作,例如 POST hw1.xml 文件?假设在创建核心时,它会看到 dataconfig 文件并加载符合 url 属性中指示的目录中描述的格式的 xml,我是否正确?

<entity name="page" processor="XPathEntityProcessor" stream="true" forEach="/doc" url="/opt/solr-4.4.0/solr/example/exampledocs" forEach="/note" transformer="RegexTransformer,DateFormatTransformer">

日志不指示错误,但我看到 numDocs 索引为 0,如何调试?

4

0 回答 0