我正在尝试在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
}
结果只包含两个条目,但应该是三个。一切都很好。
答案 0 :(得分:5)
这是MongoDB 2.4中存在的文本搜索的已知限制。出于文本搜索的目的,MongoDB会将每个字符“ABCDEFGHIJKLMNOPQRSTUVWXYZ”(POSIX语言环境中设置的“大写”)与其小写等效字符相同,但它会将其他UTF-8代码点视为唯一。< / p>
UTF-8的完整案例折叠支持将在未来版本中出现;在https://jira.mongodb.org/browse/SERVER-8423查看JIRA中的相关票证。