Lucene在多个指数之间加入查询

时间:2012-08-21 10:50:39

标签: join lucene indexing

我有两个lucene指数。 假设第一个索引内容字段中的文档如:

 name:....., filename: ......, fullpath: ........, etc.

和第二个索引内容字段如:

 name: ....., deviceip: ......, etc.

现在我需要做的是:用一些查询搜索第一个索引,然后将结果加入 基于公共字段的第二索引中的文档(例如,在这种情况下为“名称”)。加入 结果应该导致结果包含来自第二个索引的字段。

结果:

name: ....., filename: ...., fullpath: ......., deviceip: ....., etc.

是否可以通过Lucene实现?

1 个答案:

答案 0 :(得分:0)

使用BlockJoinQuery可能会解决您的问题。您可以参考此博客文章http://blog.mikemccandless.com/2012/01/searching-relational-content-with.html

您最终将创建一个包含count(TableA)+ count(TableB)docs(而不是Count(TableA)x Count(TableB))的索引,并使用BlockJoinQuery进行搜索。