1

我是 Lucene 的新手,我想根据 3 个标准过滤我的搜索结果:

  1. 字段的值document_type应该是Product
  2. 字段值brand_id应为 4
  3. 字段family_id的值应该是 (121, 232, 343) 中的所有值

所以我基本上想要的是在搜索结果中有如下组合:

  1. document_type:Product AND brand_id:4 AND family_id:121
  2. document_type:Product AND brand_id:4 AND family_id:232
  3. document_type:Product AND brand_id:4 AND family_id:343

我认为document_type:Product AND brand_id:4 AND family_id:(121 232 343)应该做到这一点,但是在解析此查询标准分析器Product时,即使document_type将值Product的索引字段设置为Field.Index.NOT_ANALYZEDand Field.Store.YES

我想知道是否可以通过为给定的 3 个案例组合 3 个可能的查询来创建布尔查询。

我对 Lucene 很陌生,有人可以帮我吗?

谢谢。

4

1 回答 1

1
Query.combine(Query[]) worked like a charm for the given situation. 

此处提供了给定方法的文档。

应用组合后,查询结果如下所示:

(+document_type:Product +brand_id:4 +family_id:121) (+document_type:Product +brand_id:4 +family_id:232) (+document_type:Product +brand_id:4 +family_id:343)

谢谢。

于 2012-09-17T22:11:56.463 回答