NumericRangeFilter不工作Lucene.net

时间:2014-07-31 13:33:53

标签: c# lucene lucene.net

我正在尝试根据价格向产品添加搜索过滤器。

Lucene.Net.Search.Filter filter = NumericRangeFilter.NewFloatRange("AnalyzedPrice", minPrice, maxPrice, true, true);

但它没有返回任何结果。当我传递此过滤器时,给出的空输出是正确的。

我使用

索引我的产品价格
doc.Add(new Field("AnalyzedPrice", pv.Price.ToString(), Field.Store.YES, Field.Index.ANALYZED));

任何解决方案?

2 个答案:

答案 0 :(得分:1)

您必须使用NumericField类来进行范围查询(例如,如果您通过IKVM使用更新的Lucene版本,则需要FloatField。)

此类将对您的字段数据进行编码 - 它将不再以文本方式存储。

答案 1 :(得分:0)

以下行解决了我的问题

doc.Add(new NumericField("AnalyzedPrice", Field.Store.YES, true).SetFloatValue((float)pv.Price));