2016-04-26 62 views
0

我試圖做全文搜索在蒙戈DB 3.2 Java驅動程序MongoDB的全文搜索結果中的「錯誤的命令」錯誤

以下是我的代碼:

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」:「no such command:'text',bad cmd:'{text:\」citizen5 \「,search:\」MAURICE \「}'」 ,「code」:59}

我已經創建textIndex:

{ 「V」:1, 「關鍵」:{ 「_fts」: 「文本」, 「_ftsx」:1}, 「名」: 「MyTextIndex」 ,「ns」:「matcher.citizen5」,「權重」:{「address」:1,「firstname」:1,「lastname」:1,「metaaddress」:1,「metafirstname」:1,「metalastname」 1, 「手機」:1}, 「DEFAULT_LANGUAGE」: 「英語」, 「language_override」: 「語言」, 「textIndexVersion」:3}

有人能指出我在哪裏做錯了嗎?

回答

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()); 

}