Neo4j:带有数字范围的复合查询



我有一个名为dates的关系索引,它索引两个字段- "year-numeric"one_answers"type"。我打算对year-numeric使用范围查询,因此将其索引为numeric

 dates.add(role1, "year-numeric", new ValueContext(2000).indexNumeric());

,其中role1是两个节点之间的关系。

在我的图中,我有两种类型的关系,它们由第二个字段"type"捕获。

虽然我可以单独查询:

IndexHits<Relationship> hits = dates.query(QueryContext.numericRange("year-numeric", 1990, 2004),null,null);

hits = dates.query("type:occurs");

如果有人能帮我把这两个条件结合起来,我将不胜感激。

我在这里检查过:queryContext -过滤数字neo4j/lucene,但我无法理解解决方案。

谢谢!

根据评论中的输入,我对lucene进行了更多的挖掘,并提出了以下解决方案。但我不确定这是否是最优方案:

BooleanQuery booleanQuery = new BooleanQuery();
TermQuery query1 = new TermQuery(new Term("type","occurs"));
NumericRangeQuery<Integer> pageQueryRange = NumericRangeQuery.newIntRange("year-numeric", 1990, 2005, true, true);
booleanQuery.add(query1, BooleanClause.Occur.MUST);
booleanQuery.add(pageQueryRange, BooleanClause.Occur.MUST);   
IndexHits<Relationship> hits = dates.query(booleanQuery);

最新更新