2013-06-25 69 views
-1

Lucene的搜索效果很好用的應用程序,但唯一的問題是我應該如何搜索結果根據不同條件(AND,OR)中的Apache Lucene的數值搜索

My Scenario: 

我正在尋找通過產品細節Lucene和它的正常工作,但我有根據,我需要展示成果

I found TermQuery, BooleanQuery, ConstantScoreQuery, MatchAllDocsQuery, 
MultiPhraseQuery, FuzzyQuery, WildcardQuery, RangeQuery, PrefixQuery, 
PhraseQuery are the options available 

但我其實不明白,我應該如何應用此我的方案(即我應該如何添加各種下拉過濾器S的下拉過濾器的選定值earch查詢) 以及請指導我用lucene搜索數值的方法 這是可能的lucene或我應該去solr?

回答

0

假設初始查詢是field1:value1 AND field2:value2。現在用戶從下拉菜單(對應於field3)中選擇一個值(value3),只需通過將字段3:value3附加到初始查詢來擴展查詢。

初始查詢:用戶後

field1:value1 field2:value2 

查詢選擇從下拉列表中值:

field1:value1 field2:value2 field3:value3 

關於搜索的數值:這些數字是如何索引?是否有單獨的字段只包含數字?或者這些數字是正常文本的一部分嗎?

UPDATE(基於運的答覆數值進行索引(和存儲)作爲int字段)

可以使用NumericRangeQuery對數字字段查詢。對於相等查詢,將上限和下限作爲相同的值。通過http://wiki.apache.org/lucene-java/SearchNumericalFields

+0

數字被編入索引字段pIdField = new IntField(「p_id」,pid,Field.Store.YES); document.add(nuggetIdField);並有單獨的字段包含數字 – JavaLover

+0

@JavaLover我已更新我的答案 – naresh