使用 Data Import Handler 处理结构化数据

许多搜索引擎应用将需要索引的数据保存在结构化存储中,如关系型数据库。Data Import Handler (DIH) 提供一个机制来从结构化存储中导入数据并索引。除了关系型数据库,DIH 可以索引来自 HTTP 的数据源,如 RSS 和 ATOM feeds,电子邮件和结构化的 XML 文件。

DataImportHandler 的 jar 包没有在 Solr war 包中,需要手动添加到 Solr 的 lib 目录下,或者通过 solrconfig.xml 的 <lib> 指令来指定。

XSLTRequestHandler

配置文件中默认配置了 update 请求的处理,同时这个配置设置了 lazy load 的标示。

XSLTRequestHandler 允许索引任何带 XML <tr> command 的 XML 数据。同时需要在 solr/conf/xslt 目录下有 XSLT 样式文件。
&lt;requestHandler name=&quot;/update/xslt&quot; startup=&quot;lazy&quot;/&gt;

这里是一个 XSLT 样式表的例子:
<br />
&lt;xsl:stylesheet xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;<br />
	version=&quot;1.0&quot;&gt;<br />
	&lt;xsl:template match=&quot;/&quot;&gt;<br />
		&lt;add&gt;<br />
			&lt;xsl:apply-templates select=&quot;/random/document&quot; /&gt;<br />
		&lt;/add&gt;<br />
	&lt;/xsl:template&gt;<br />
	&lt;xsl:template match=&quot;document&quot;&gt;<br />
		&lt;doc boost=&quot;5.5&quot;&gt;<br />
			&lt;xsl:apply-templates select=&quot;*&quot; /&gt;<br />
		&lt;/doc&gt;<br />
	&lt;/xsl:template&gt;<br />
	&lt;xsl:template match=&quot;node&quot;&gt;<br />
		&lt;field name=&quot;{@name}&quot;&gt;<br />
			&lt;xsl:if test=&quot;@enhance!=''&quot;&gt;<br />
				&lt;xsl:attribute name=&quot;boost&quot;&gt;&lt;xsl:value-of select=&quot;@enhance&quot; /&gt;&lt;/xsl:attribute&gt;<br />
			&lt;/xsl:if&gt;<br />
			&lt;xsl:value-of select=&quot;@value&quot; /&gt;<br />
		&lt;/field&gt;<br />
	&lt;/xsl:template&gt;<br />
&lt;/xsl:stylesheet&gt;<br />

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress   闽ICP备18020075号-1