问题描述
我有一个 API Rest 和 Spring BOOT 连接到 MangoDB 数据库。 我在“标题”字段的“技能”集合中创建了一个自动完成索引。 我正在尝试使用此索引搜索技能,聚合为: { “$搜索”:{
'autocomplete': {
'query': 'Java','path': 'title','fuzzy': {
'maxEdits': 2,'prefixLength': 3
}
}
}
} 服务是:
{
MongoCollection<Document> collection = mongoClient.getDatabase("test").getCollection("skills");
BasicDBObject autocomplete = new BasicDBObject ();
autocomplete.append("query",wordToSearch);
autocomplete.append("path","title");
BasicDBObject autocom = new BasicDBObject ("autocomplete",autocomplete);
BasicDBObject search = new BasicDBObject ("$search",autocom);
logger.info("Search Aggregation " + search.toJson());
List <BasicDBObject> pileline = new ArrayList<BasicDBObject>();
pileline.add(search);
AggregateIterable<Document> result = collection.aggregate(pileline);
return result.first();}
我的休息控制器是:
@GetMapping("/skill/search")
public Document searchSkills(@RequestParam String wordToSearch){
Document skills = skillService.searchSkills(wordToSearch);
return skills;
}
但我遇到了一个例外: ” 命令失败,错误为 40324 (Location40324):'无法识别的管道阶段名称: 服务器 localhost:27017 上的“$search”。完整的响应是 {"ok": 0.0,"errmsg": “无法识别的管道阶段名称:‘$search’”、“代码”:40324、“代码名称”: "Location40324"}"
感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)