4

mongodb で全文検索を使用しようとしています。

> db.collection.insert({"text" : "Первый второй третий"})
> db.collection.insert({"text" : "первый Второй третий"})
> db.collection.insert({"text" : "первый второй Третий"})
> db.collection.ensureIndex({"text" : "text"}, {"default_language" : "russian"})

文は、大文字と小文字のみが異なります。

> db.collection.runCommand("text" , {search : "первый"})
{
        "queryDebugString" : "перв||||||",
        "language" : "russian",
        "results" : [
                {
                        "score" : 0.6666666666666666,
                        "obj" : {
                                "_id" : ObjectId("516acfe2dbfd90a837e09131"),
                                "text" : "первый Второй третий"
                        }
                },
                {
                        "score" : 0.6666666666666666,
                        "obj" : {
                                "_id" : ObjectId("516acfe8dbfd90a837e09132"),
                                "text" : "первый второй Третий"
                        }
                }
        ],
        "stats" : {
                "nscanned" : 2,
                "nscannedObjects" : 0,
                "n" : 2,
                "nfound" : 2,
                "timeMicros" : 86
        },
        "ok" : 1
}

結果は 2 つのエントリのみで構成されますが、3 つになるはずです。英語では、すべてが良いです。

4

1 に答える 1

5

これは、MongoDB 2.4 に存在するテキスト検索の既知の制限です。テキスト検索の目的で、MongoDB は各文字 "ABCDEFGHIJKLMNOPQRSTUVWXYZ" (POSIX ロケールで設定された「大文字」) を対応する小文字と同じように扱いますが、他の UTF-8 コード ポイントは一意のものとして扱います。

UTF-8 の大文字と小文字の完全なサポートは、将来のリリースで提供される予定です。https://jira.mongodb.org/browse/SERVER-8423で JIRA の関連するチケットを参照してください。

于 2013-04-14T23:05:55.007 に答える