在Lucene中展示同一系列中的匹配文档

时间:2010-07-18 23:39:42

标签: lucene

有些文章分几部分写成, 例如,我从IBM开发人员那里获得了这些文章:

  

分布式数据处理   Hadoop,第1部分:入门

     

分布式数据处理   Hadoop,第2部分:更进一步

     

分布式数据处理   Hadoop,第3部分:应用程序   发展

我将分别索引这三篇文章。有些人搜索某些关键字,有可能part3位于第3位是第32位。因此,如果我逐页列出结果,则part1和part3将显示在不同的页面上。

如何确保同一系列中的匹配文件一起显示?

我猜在SQL中,我们可以使用“group by”。

1 个答案:

答案 0 :(得分:2)

我相信你要求的是Field Collapsing,它目前是Solr的主干功能,并将被纳入下一个Solr版本。

如果你想自己动手,一种可行的方法是:

  1. 将“系列ID”字段添加到作为系列成员的每个文档中。您必须确保每个新系列都会增加此值。
  2. 向Lucene发出初步查询,并获取一个命中列表。
  3. 对于每次点击,检查它是否有系列ID;如果是,请按系列ID进行另一次查询,以便检索该系列的所有成员。
  4. 另一种方法是将所有系列成员的ID存储在每个成员文档中的字段中。