2013-07-07 243 views
0

我想在Lucene中索引100万个html文档。我需要在一个Lucene文档中索引几个html文件。最近,我想在搜索响应中知道原始的html文档。Lucene索引html文档

所以,例如我有:

1.home.html 
2.history.html 
3.about.html 

4.home2.html 
... 

我想要在同一Lucene的文档中索引1,2和3。然后,如果我搜索任何文本,我想知道原始文档(家庭,历史或关于)。

我一直在互联网上搜索,我发现Lucene有效载荷。所以我一直在想所有条款索引原始文件的网址。这是一个好的解决方案吗?表演会没事的?

非常感谢您的帮助。

+0

您只存储html文件的名称或html文件的全部内容? –

+0

有效载荷可能会提供可接受的解决方案。一个好的解决方案是将页面存储为单独的文档。为什么你想在同一个文档中索引这三个页面? – femtoRgon

+0

我正在存储文档的全部内容,并且还希望存储文档的名称。我已经实现了分离的页面解决方案,并且它完美地工作,但我需要像前面所说的那样在组中搜索(例如:home,history和about),我发现的唯一方法是使用Payload。 – Hibernator

回答

0

上我一直在这个问题上两天,我想我找到了解决办法。

I指数使用例如像一个ID每个HTML页面一个文档中:

1.home.html  id1 htmlcontent 
2.history.html id1 htmlcontent 
3.about.html id1 htmlcontent 

4.home2.html id2 htmlcontent 
... 

最近我可以利用org.apache.lucene.search.grouping到组通过这个ID的结果。

http://lucene.apache.org/core/3_2_0/api/contrib-grouping/org/apache/lucene/search/grouping/package-summary.html

希望这有助于人:)

0

这是两个不同的Lucene特点:

1.Grouping:它允许组搜索结果中指定字段。例如,如果按照作者字段进行分组,则作者字段中具有相同值的所有文档将归入一个组。你将有一种树作为输出。

http://lucene.apache.org/core/3_2_0/api/contrib-grouping/org/apache/lucene/search/grouping/package-summary.html

2.facet:此功能不会组文件,它只是告诉你许多文件是如何落入一个小的特定值。例如,如果您有基于作者字段的方面,您将收到所有作者的列表,并且对于每位作者,您将知道有多少文档属于该特定作者。之后,如果您想查看这些文档,则必须再次查询添加特定过滤器(author = whatever)。该面搜索,其实是基于应用多个过滤器,逐步达到你真正感兴趣的文件浏览文件。

这里是一些教程

http://lucene.apache.org/core/4_3_1/facet/org/apache/lucene/facet/doc-files/userguide.html

http://lucene.apache.org/core/4_3_1/facet/org/apache/lucene/facet/search/package-summary.html

刚刚经历它并根据您的需求制定出来

+0

目前,对于Lucene分组扩展,一切看起来都很好。谢谢你的帮助! – Hibernator