0
从Lucene.Net 2.3.1.3升级到2.9.4.1后,RangeQuery不再有效。我试过NumericRangeQuery和TermRangeQuery,但没有运气。 RangeQuery在一个范围内搜索Long值(例如 - [4000至5000]应该找到4500)。Rangequery不再适用于Lucene 2.9.4.1
下面是代码:
private static Query BuildNumericRangeQuery(NumericRangeSearchParam.NumericRangeField range)
{
var startTerm = new Term(range.FieldName, NumberTools.LongToString(range.Start));
var endTerm = new Term(range.FieldName, NumberTools.LongToString(range.End));
return new RangeQuery(startTerm, endTerm, true);
}
其他人遇到了同样的问题?任何有识之士将不胜感激!
RangeQuery已弃用;重写您的查询来替代使用TermRangeQuery或NumericRangeQuery。 http://lucene.apache.org/core/2_9_4/api/all/org/apache/lucene/search/RangeQuery.html – sisve
我尝试了NumericRangeQuery和TermRangeQuery都没有结果。我确实发现数据被填充为10个字符,如下所示: var transformation =(int)Math.Floor(rating * 1000); var result = ToLexographical(transformation,10); ...以0000004500为例。 –
是的,并且在索引期间也应用相同的填充,对吗? – sisve