【问题标题】:Solr index xml file with html tag (with DataImportHandler)带有 html 标记的 Solr 索引 xml 文件(使用 DataImportHandler)
【发布时间】:2016-09-27 11:23:10
【问题描述】:

我有 Solr 4.10.4,我想索引一个 xml 文件。 有些xml标签包含html标签。

<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<root>
   <info>
        <text>
             <p>text 1</p>
             <p>text 2</p>
             <p>text 3</p> 
        </text> 
   </info> 
</root>

我用过这个:

<charFilter class="solr.HTMLStripCharFilterFactory"/>

但它不起作用,我不知道出了什么问题。

M.

【问题讨论】:

  • solr.HTMLStripCharFilterFactory 将从索引数据中删除 html 标签,而不是从存储的值中删除。是否也要转换存储的值?

标签: xml solr dataimporthandler


【解决方案1】:

HTMLStripCharFilterFactory 将从索引数据中删除 HTML 标记,而不是从存储的数据中。
要在索引时去除 html 标签,您可以在 dataimporthandler 中使用 HTMLStripTransformer。以下是相同的示例 DIH。

<dataConfig>
<dataSource name="fDS" type="FileDataSource" />
<document>
    <entity name="tika-test" processor="XPathEntityProcessor"
            url="${solr.install.dir}/example/exampledocs/content.xml" forEach="/root" dataSource="fDS">
            <field column="text" xpath="/root/info/text/p" />
    </entity>
</document>

这个转换器有一个属性,stripHTML,它是一个布尔值(真/假),表示如果 HTMLStripTransformer 是否应该处理该字段。

【讨论】:

  • xpath 怎么样? xpath="/root/info/text" 是否正确?
  • 是的,xpath 将与您提到的相同。
  • 当我从网页界面执行查询时,该字段只填充了“\n”字符。
  • 为什么我没有文本xml标签的内容?
  • @Medley..实际上在 xpath 中存在一些问题。正确的 xpath 将是“/root/info/text/p”。请请参阅我给出的答案,因为我做了一些更改。它会解决你的问题。
猜你喜欢
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多