Filter queryContext-使用数字neo4j/lucene进行过滤

Filter queryContext-使用数字neo4j/lucene进行过滤,filter,lucene,neo4j,Filter,Lucene,Neo4j,我正在尝试使用数值范围过滤neo/lucene中的通配符查询。 我想搜索所有节点(文档),其键“actor”以“rob”开头,且年龄>20岁: WildcardQuery luceneQuery = new WildcardQuery( new Term("actor", "rob*" )); QueryContext qx = new QueryContext(luceneQuery) .numericRange("age", 20, null)

我正在尝试使用数值范围过滤neo/lucene中的通配符查询。 我想搜索所有节点(文档),其键“actor”以“rob”开头,且年龄>20岁:

WildcardQuery luceneQuery  = new WildcardQuery( new Term("actor", "rob*" ));
QueryContext qx = new QueryContext(luceneQuery)
            .numericRange("age", 20, null)
                .sortNumeric("age", true);      
IndexHits<Node> hits = lucene.query(qx);
WildcardQuery luceneQuery=新的WildcardQuery(新术语(“actor”,“rob*”));
QueryContext qx=新的QueryContext(luceneQuery)
.numeriRange(“年龄”,20,空)
.sortNumeric(“年龄”,真实);
IndexHits hits=lucene.query(qx);
一旦我添加了数字范围,通配符查询就不起作用了,它只按数字范围排序。 是否可以同时使用通配符和数字

谢谢,
Daniele

我怀疑您想使用布尔查询将通配符查询与数值范围查询结合起来。(我通常自己使用QueryParser,而不是手工构建查询。)

对于示例查询,QueryParser语法如下所示:

+actor:rob* +age:{20 TO 123}

其中+年龄:{20至123}要求年龄>20岁且年龄<123岁(记录在案的最年长的人活到122岁)。“+”运算符强制文档中出现这两个术语。

谢谢,这就是解决方案!!!我很好奇你会如何使用QueryParser来完成这个任务?下次可能会节省我很多时间!