lucene 范围搜索表达式(range expression)
实际测试
lucene范围符号,大于等于或小于等于符号[],大于或小于符号{}
newIntRange或newLongRange一样
代码:
// test lucene expression
BooleanQuery bQuery = new BooleanQuery();
// test range expression
// +LPUBLISHTIME1:{1 TO 3}
NumericRangeQuery numRangeQuery1 = NumericRangeQuery.newIntRange("lpublishtime1".toUpperCase(), 1, 3, false, false);
bQuery.add(numRangeQuery1, BooleanClause.Occur.MUST);
System.out.println(bQuery);
// +LPUBLISHTIME2:[1 TO 3}
NumericRangeQuery numRangeQuery2 = NumericRangeQuery.newIntRange("lpublishtime2".toUpperCase(), 1, 3, true, false);
bQuery.add(numRangeQuery2, BooleanClause.Occur.MUST);
System.out.println(bQuery);
// +LPUBLISHTIME2:[1 TO 3]
NumericRangeQuery numRangeQuery3 = NumericRangeQuery.newIntRange("lpublishtime2".toUpperCase(), 1, 3, true, true);
bQuery.add(numRangeQuery3, BooleanClause.Occur.MUST);
System.out.println(bQuery);
BooleanQuery bQuery = new BooleanQuery();
// test range expression
// +LPUBLISHTIME1:{1 TO 3}
NumericRangeQuery numRangeQuery1 = NumericRangeQuery.newIntRange("lpublishtime1".toUpperCase(), 1, 3, false, false);
bQuery.add(numRangeQuery1, BooleanClause.Occur.MUST);
System.out.println(bQuery);
// +LPUBLISHTIME2:[1 TO 3}
NumericRangeQuery numRangeQuery2 = NumericRangeQuery.newIntRange("lpublishtime2".toUpperCase(), 1, 3, true, false);
bQuery.add(numRangeQuery2, BooleanClause.Occur.MUST);
System.out.println(bQuery);
// +LPUBLISHTIME2:[1 TO 3]
NumericRangeQuery numRangeQuery3 = NumericRangeQuery.newIntRange("lpublishtime2".toUpperCase(), 1, 3, true, true);
bQuery.add(numRangeQuery3, BooleanClause.Occur.MUST);
System.out.println(bQuery);
作者:SVENNEE
出处:http://www.cnblogs.com/svennee
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如果您觉得此文有帮助,请点击推荐和关注我。您的支持将鼓励我继续创作!
出处:http://www.cnblogs.com/svennee
本文采用知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
如果您觉得此文有帮助,请点击推荐和关注我。您的支持将鼓励我继续创作!