2013-06-25 67 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