我有一个名为dates的关系索引,它对2个字段进行索引 - " year-numeric"和"键入"。我打算在年份数字上使用范围查询,因此将其编入索引为数字
dates.add(role1, "year-numeric", new ValueContext(2000).indexNumeric());
其中role1是2个节点之间的关系。
在我的图表中,我有两种类型的关系,由第二个字段"类型"捕获。
虽然我可以单独查询:
IndexHits<Relationship> hits = dates.query(QueryContext.numericRange("year-numeric", 1990, 2004),null,null);
和
hits = dates.query("type:occurs");
如果有人能帮助我将这两个条件结合起来,我将不得不承担责任。
我在这里查了一下:queryContext - filtering with numbers neo4j/lucene但我无法理解解决方案。
谢谢!
答案 0 :(得分:1)
根据评论中的输入,我在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);