繁体   English   中英

Spring BOOT - MangoDB - 使用索引自动完成搜索

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM