-1

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?

4

1 回答 1

0

假设初始查询是 field1:value1 AND field2:value2。现在用户从下拉列表(对应于 field3)中选择一个值(value3),只需通过将 field3:value3 附加到初始查询来扩展查询。

初始查询:

field1:value1 field2:value2

用户从下拉列表中选择值后查询:

field1:value1 field2:value2 field3:value3

关于搜索数值:这些数字是如何编入索引的?是否有一个单独的字段只包含数字?还是这些数字是普通文本的一部分?

更新(基于操作员的回复,即数值被索引(并存储)为 Int 字段)

您可以使用 NumericRangeQuery 查询数字字段。对于相等查询,将上限和下限设置为相同的值。通过http://wiki.apache.org/lucene-java/SearchNumericalFields

于 2013-06-25T07:44:55.643 回答