0

我有字段“ typesmultivalue=true. 来自客户端层,我收到了应该处理的键列表。

我想创建 FilterQuery 来产生fq类似fq=types:(6+OR+4+OR+8)

从逻辑上讲,我希望使用下一个代码:

final Criteria criteria = new Criteria("types").in(types);
new SimpleFilterQuery(criteria);

但是这段代码产生fq=types:(6+4+8)

它可以工作,但我使用q.op=AND(其他需要需要)

有什么简单的方法可以做inOr / inAny 之类的事情吗?

4

1 回答 1

0

实际上我找到了谁的方法,但这看起来并不像我期望的那样美丽:

第一的:

Criteria criteria = new SimpleStringCriteria("types:(" + StringUtils.join(statuses, " OR ") + ")");
new SimpleFilterQuery(criteria);

第二:

Criteria criteria = new Criteria("types");
criteria.expression("(" + StringUtils.join(statuses, " OR ") + ")");
new SimpleFilterQuery(criteria);
于 2015-10-29T14:02:49.987 回答