2013-06-27 39 views
1

我使用Nutch抓取网站,并且已将抓取的数据推送到solr。现在我想要搜索具有特定属性值的特定标签之间的内容。例如,使用Solr为具有属性的HTML标记编制索引

<h><title> title to search </title></h> 
<div id="abc"> 
    content to search 
</div> 
<div class="efg"> 
    other content to search 
</div> 

我已经看到此问题(how to parse html with nutch and index specific tag to solr?),但这并没有足够的清晰度。

我想知道是否有任何插件可用,或者我需要完全编写一个定制的插件。如果我必须编写一个插件,我只需要几个方向来处理HTML标签和属性。

回答

1

在标记之前,您可以在分析仪中使用HTMLStripCharFilterFactory

此过滤器strips HTML from the input stream。欲了解更多信息,看看here

+0

感谢您的回复!是否可以根据HTML标签的属性值(即id或class等)进行索引。在上面的例子中,abc代表id和efg代表class。 – abhijeet

+0

我不这么认为。你将不得不自己提取这些值并为它们编制索引,也许在其他一些领域。 “HTMLStripCharFilterFactory”在这方面并没有帮助。 – JHS

+0

好的。假设我知道诸如标题,描述,细节等属性的值。除了HTMLStripCharFilterFactory分析器之外,我还可以在schema.xml中为solr添加这些属性值吗? – abhijeet

1

你可以实现一个Nutch过滤器(我喜欢Jericho HTML Parser)提取只需要使用DOM操作索引的页面的部分。您可以使用TextExtractor类来获取干净的文本(无法使用HTML标记)以用于索引。我通常将这些数据保存在自定义字段中。

+0

非常感谢您先生!我还有一个问题,你通过在自定义字段中保存数据意味着什么? – abhijeet

+0

Solr索引中的自定义字段。 – Claude