2016-04-23 6 views
1

私は、db.runCommand()関数を使って、テキスト検索コマンドが3.xで動作していないことを発見しました。モンゴでJavaでMongo 3.xでテキスト検索を行う方法

が、これがうまく機能シェル:

collection.find({"$text": {"$search":"some text"}}) 

次のアイデアは、単にこれを取るとJavaにこれを変換することはもちろんです。

collection.find(new Document("$text", new Document("$search", "some text"))); 

これは機能しません。 Javaドライバを使用してMongo 3.xの検索にアプローチする方法のヒントを得ることは素晴らしいことです。

誤って:動作します。しかし、リテラルテキストの中に二重引用符が付いた問題はまだあります。

+0

私は間違っているようです。それはJavaで動作します。しかし、二重引用符を含むリテラルテキスト検索は依然として難しいようです。たとえば、ニックネーム: "Duke"のリテラルオカレンスを検索します。通常、リテラル検索は\ "に埋め込まれている必要がありますが、"テキスト内ではどうしたらいいですか? – dexter

答えて

0

以下のコードブロックを使用してMongoDBで検索することができます。上記のコードで

BasicDBObject query = new BasicDBObject() 
query.put(column_name, new BasicDBObject("$regex", searchString).append("$options", "i")); 
DBCursor cursor = dbCollection.find(query); 

、あなたが検索したい列をCOLUMN_NAMEをreplcae、およびsearchStringのの代わりに、あなたが探している値を追加します。このコードサンプルを実行します。

これはうまく動作します。

関連する問題