1

我在索引中有三个字段;名字、姓氏和 isManager(1 或 0)。如何使用 QueryParser 并将 isManager (作为全局过滤器)添加到 1 ,以便我只有效地搜索经理?

因此,如果用户在“firstname:john”中搜索/传递,我想添加/附加“isManager:1”作为全局过滤器。一种解决方案是将“NOT isManager:0”附加到所有用户的查询字符串......但想知道是否还有其他首选方式。

4

2 回答 2

0

使用 FilteredQuery http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/search/FilteredQuery.html包装从 QueryParer 返回的 Query 对象

于 2013-10-25T12:05:38.527 回答
0

使用查询过滤器是正确的方法。

附加的问题在于,理论上这很容易受到查询注入攻击(想想SQL 注入,但对于 Lucene 查询)。

于 2013-10-25T13:01:17.507 回答