我已经在表格中为列创建了文本索引。现在,我想做一个普通的查询,它对一个列进行过滤,对过滤后的结果进行文本查询。
通过命令行,我能够做到:
db.table1.find({provider:"543108bee5ca0167657dc343", $text: { $search: "cake" }})
我无法使用 mongo java驱动程序执行相同操作。这是我的代码:
Query query = Query.query(
Criteria.where("provider").in(providerIDs).
and(TextCriteria.
forLanguage("en").
matching(searchString).getKey()));
mongoOperation.find(query, Table1.class);
它给了我错误:无法规范化查询。
另外,我如何对此进行分页?
答案 0 :(得分:1)
尝试使用addCriteria()
方法
Query query = Query.query(Criteria.where("provider").in(providerIDs))
.addCriteria(TextCriteria.forLanguage("en").matching("searchString"));