0

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

所以,例如我有:

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

4.home2.html
...

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

我一直在互联网上搜索,我发现了Lucene payload。所以我一直在考虑在所有术语中索引原始文档的 url。这是一个好的解决方案吗?表现会好吗?

非常感谢您的帮助。

4

3 回答 3

1

我已经在这个问题上工作了两天,我想我找到了解决方案。

我使用 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

希望这对任何人都有帮助:)

于 2013-07-09T12:45:38.387 回答
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:此功能不会对文档进行分组,它只是告诉您有多少文档属于某个方面的特定值。例如,如果您有基于作者字段的构面,您将收到所有作者的列表,并且对于每个作者,您将知道有多少文档属于该特定作者。之后,如果您想查看这些文档,则必须再查询一次添加特定的过滤器(作者=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

只需通过它并根据您的需要进行锻炼

于 2013-07-11T06:02:36.097 回答
0

I think what you need is Apache Solr http://lucene.apache.org/solr/, its uses Lucene as indexing engine and has querying / web interface for searching.

look at this tutorial on the site http://lucene.apache.org/solr/4_3_1/tutorial.html

于 2013-07-07T21:43:07.173 回答