在mongodb的俄文全文搜索

时间:2013-04-14 16:06:27

标签: mongodb full-text-search

我正在尝试在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
}

结果只包含两个条目,但应该是三个。一切都很好。

1 个答案:

答案 0 :(得分:5)

这是MongoDB 2.4中存在的文本搜索的已知限制。出于文本搜索的目的,MongoDB会将每个字符“ABCDEFGHIJKLMNOPQRSTUVWXYZ”(POSIX语言环境中设置的“大写”)与其小写等效字符相同,但它会将其他UTF-8代码点视为唯一。< / p>

UTF-8的完整案例折叠支持将在未来版本中出现;在https://jira.mongodb.org/browse/SERVER-8423查看JIRA中的相关票证。