2009-10-19 40 views
3

我正在尋找一種有效的方式來索引和搜索Lucene.Net中的數值字段。 現在我的需求只是整數值。如何索引數值字段並在Lucene.Net中按範圍進行搜索?

我想通過值的範圍(x和y之間,大於x ...)進行搜索。現在,我將數字編入索引併爲兩個值之間的每個值手動創建子句,但當我搜索1000和1000之間的值時,它會快速生成很多子句並達到默認限制(1024) 5000,例如。我確信有更好的方法來做到這一點...

回答

6

用RangeQuery解決了它。它也可以與下面的語法查詢分析器來完成:

FieldName:[startValue TO endValue] 

請記住,範圍查詢字符串上運行,所以你的號碼都必須在索引和查詢進行標準化。在我的情況下,我用.ToString(「00000」)標準化爲5位數字。對於負數和小數必須進行特殊處理,但對我而言這不是問題。