我正在尝试在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}
有人能指出我做错了吗?
答案 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());
}