[英]Spring BOOT - MangoDB - Searching with Index Autocomplete
我有一个 API Rest 和 Spring 引导连接到 MangoDB 数据库。 我在字段“标题”的集合“技能”中创建了一个自动完成索引。 我正在尝试使用此索引搜索技能,聚合为:{ '$search': {
'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();}
我的 Rest Controller 是:
@GetMapping("/skill/search")
public Document searchSkills(@RequestParam String wordToSearch){
Document skills = skillService.searchSkills(wordToSearch);
return skills;
}
但我得到一个异常:“命令失败,错误 40324 (Location40324): 'Unrecognized pipeline stage name: '$search'' on server localhost:27017. 完整响应是 {"ok": 0.0, "errmsg":"无法识别的管道阶段名称:'$search'","code":40324,"codeName":"Location40324"}"
谢谢您的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.