SOLR - 为xml数据配置schema.xml

时间:2014-12-26 09:13:46

标签: solr lucene solrcloud

我正在尝试使用安装在我的Windows操作系统上的solr索引wikitravels数据。以下是示例输入数据:

<?xml version="1.0" encoding="UTF-8"?>

<add> 
  <page> 
    <title>3Days 2Night Chiang Mai to Chiang Rai</title>  
    <id>83509</id>  
    <revision> 
      <id>1305791</id>  
      <timestamp>2009-11-27T10:35:53Z</timestamp>  
      <contributor> 
        <username>Texugo</username>  
        <id>7666</id>  
        <realname/> 
      </contributor>  
      <comment>[[3Days 2Night Chiang Mai to Chiang Rai]] moved to [[Chiang Mai to Chiang Rai in 3 days]]</comment>  
      <text xml:space="preserve">#REDIRECT [[Chiang Mai to Chiang Rai in 3 days]]</text> 
    </revision> 
  </page> 
</add>

在我的schema.xml中,我添加了以下更改:

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="comments" type="text_general" indexed="true" stored="true"/>
<field name="text" type="text_general" indexed="true" stored="true" multiValued="true"/>

<uniqueKey>id</uniqueKey>

发布后,不会显示任何错误;但是在SOLR网站中它并没有显示数据。也不,我可以在日志中看到任何错误。

$ java -jar post.jar wiki.xml
SimplePostTool version 1.5
Posting files to base url http://localhost:8983/solr/update using content-type application/xml..
POSTing file wiki.xml
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/update..
Time spent: 0:00:00.342

2 个答案:

答案 0 :(得分:1)

正如@notdang所说,Solr输入XML有一种特殊的形式。你可以:

  1. the XML format Solr expects
  2. 中发送数据
  3. 使用可解析XML的DataImportHandler
  4. Pre-process XML with XSLT on the way in使其看起来像XML Solr期望的那样。
  5. 使用JSON和pre-process that
  6. 我怀疑如果您使用第三方XML文件,选项2(DataImportHandler)可能是最简单的。此外,DIH可以在读取非常大的XML文件时导入它们。将大文件发布到Solr可能会达到大小限制。

答案 1 :(得分:0)

根据documentation,xml应具有以下格式:

<add>
  <doc>
    <field name="employeeId">05991</field>
    <field name="office">Bridgewater</field>
    <field name="skills">Perl</field>
    <field name="skills">Java</field>
  </doc>
  [<doc> ... </doc>[<doc> ... </doc>]]
</add>

所以你的xml应该是这样的

<?xml version="1.0" encoding="UTF-8"?>

<add> 
  <doc> 
    <field name="title">3Days 2Night Chiang Mai to Chiang Rai</field>  
    <field name="id">83509</field>  
    <field name="revision_id"> 1305791</field>
    <field name="revision_timestamp">2009-11-27T10:35:53Z</field>
    ....
  </doc> 
</add>