5

SQL言語などのMongoDB/mongooseの「like」ステートメントにはありますか? 使用する唯一の理由は、全文検索の実装です。

4

5 に答える 5

7

MongoDBはRegularExpressionsをサポートしています。

于 2012-05-29T05:33:11.777 に答える
2

mongodb の Java API を使用して正規表現を実装するには、次の 2 つの方法があります。

式 1: ドキュメント フィールドのその文字列から検索を開始する必要があります

String strpattern ="your regular expression";
Pattern p = Pattern.compile(strpattern);

BasicDBObject obj = new BasicDBObject() 
obj.put("key",p);

例:(名前が「a」で始まる場所ならどこでも検索したいと考えてください)

String strpattern ="^a";
Pattern p = Pattern.compile(strpattern);

BasicDBObject obj = new BasicDBObject() 
obj.put("name",p);

式 2:

1 つのフィールドで複数の単語を検索する必要があります。次のように使用できます。

String pattern = "\\b(one|how many)\\b";

BasicDBObject obj = new BasicDBObject();

//if you want to check case sensitive

obj.put("message", Pattern.compile(pattern,Pattern.CASE_INSENSITIVE));
于 2012-08-24T11:07:50.007 に答える
0

正規表現を使用: /^textforesarc$/i. パフォーマンスに別れを告げることを忘れないでください:)。like で正規表現検索をシミュレートしても、カスタム定義のインデックスにヒットしません。現在のところ、で始まるのみがサポートされています。

于 2012-07-12T23:35:54.570 に答える
0

データをトークン (単語) に変換するスクリプトをアプリケーション レベルで作成することを検討してください。次に、トークンをタグとして扱い、それらのトークンにインデックスを作成してから、タグを検索するようにトークンを検索します。これは逆索引を作成するようなものです。

テキストの検索機能を向上させるには、MongoDB の代わりに Lucene を使用することを検討してください。

于 2012-06-28T21:26:13.863 に答える