Lucene Search适用于该应用程序,但唯一的问题是如何根据各种条件(AND,OR)搜索结果
My Scenario:
我正在通过lucene搜索产品详细信息并且它工作正常但我确实有各种下拉式过滤器,我需要显示结果
I found TermQuery, BooleanQuery, ConstantScoreQuery, MatchAllDocsQuery,
MultiPhraseQuery, FuzzyQuery, WildcardQuery, RangeQuery, PrefixQuery,
PhraseQuery are the options available
但我实际上不明白应该如何将其应用于我的场景(即如何将选定的下拉过滤器值附加到搜索查询) 还请指导我用lucene搜索数值的方法 是不是可以用lucene或者我应该去solr?
答案 0 :(得分:0)
假设初始查询是field1:value1 AND field2:value2。现在用户从下拉列表中选择一个值(value3)(对应于field3),只需通过将field3:value3附加到初始查询来扩展查询。
初始查询:
field1:value1 field2:value2
用户从下拉列表中选择一个值后进行查询:
field1:value1 field2:value2 field3:value3
关于搜索数值:这些数字如何编入索引?是否有一个单独的字段只包含数字?或者这些数字是普通文本的一部分吗?
UPDATE(基于op的回复,数值被索引(并存储)为Int字段)
您可以使用NumericRangeQuery查询数字字段。对于相等性查询,将上限和下限设为相同的值。完成http://wiki.apache.org/lucene-java/SearchNumericalFields