MongoDB全文搜索导致“错误命令”错误

时间:2016-04-26 20:50:46

标签: mongodb

我正在尝试在Mongo DB 3.2 Java驱动程序中进行全文搜索

以下是我的代码:

  DBObject textSearchCommand = new BasicDBObject();
    textSearchCommand.put("text", collectionName);
    textSearchCommand.put("search", "MAURICE");
CommandResult commandResult = db.command(textSearchCommand);
     System.out.println("Command result is "+commandResult.toString());

获取以下错误:

  

命令结果是{“ok”:0.0,“errmsg”:“没有这样的命令:'text',坏cmd:'{text:\”citizen5 \“,搜索:\”MAURICE \“}'”, “code”:59}

我已经创建了textIndex:

  

{“v”:1,“key”:{“_ _s”:“text”,“_ xxx”:1},“name”:“MyTextIndex”,“ns”:“matcher.citizen5”,“权重” “:{”address“:1,”firstname“:1,”lastname“:1,”metaaddress“:1,”metafirstname“:1,”metalastname“:1,”mobile“:1},”default_language“: “english”,“language_override”:“language”,“textIndexVersion”:3}

有人能指出我做错了吗?

1 个答案:

答案 0 :(得分:0)

我得到了解决方案。  MongoDB 3.0以上文本命令已禁用。

因此,您可以使用普通的find命令来搜索查询。

这是我的代码:

 BasicDBObject query = new BasicDBObject();
  query.put("$text", new BasicDBObject("$search",value));
  DBCursor cursor = db.getCollection(dbName).find(query);
  while (cursor.hasNext()) {
      BasicDBObject obj = (BasicDBObject) cursor.next();
      System.out.println(obj.toString()); 

}

相关问题