Lucene嵌套查询

时间:2013-06-07 09:54:57

标签: lucene

我有这种情况

Entity Company_id 
-----------------
E001     1        
E001     2       
E003     1
E002     2
E001     3
E003     3

我想知道在这种情况下有多少公司(E001和E003)的结果应该是公司1和公司。

在SQL中,它可以通过创建嵌套查询来解决,但是我应该使用像luncene这样的东西,因为性能需要这个查询将为每个页面执行50次以上。

注意:我还必须限制3个或4个实体,例如:所有拥有(E001 AND E002和E003 AND 3004)的公司。

任何帮助将不胜感激

修改 我知道lucene是用于文本搜索的,但我们假设每行都是索引中的Document。

1 个答案:

答案 0 :(得分:0)

如果您可以配置Lucene索引以使每个公司都是Lucene文档并且它们包含0个或更多实体,那么(在查询解析器语法中)“所有具有E001 AND E003的公司”变为:

+entity:E001 +entity:E003

(其中实体是实体字段)。 “所有拥有E001和E002和E003和E004的公司都成为:

+ entity:E001 + entity:E002 + entity:E003 + entity:E004

然后只需将“Company_id”包含为公司文档的存储字段,这样您就可以在查询结果中看到它。