俄语mongodb中的全文搜索
我尝试在mongodb中使用全文搜索:俄语mongodb中的全文搜索,mongodb,full-text-search,Mongodb,Full Text Search,我尝试在mongodb中使用全文搜索: > db.collection.insert({"text" : "Первый второй третий"}) > db.collection.insert({"text" : "первый Второй третий"}) > db.collection.insert({"text" : "первый второй Третий"}) > db.collection.ensureIndex({"text" : "text"
> 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
}
结果只包含两个条目,但应该是三个条目。在英语中,一切都很好。这是已知的文本搜索限制,因为它存在于MongoDB 2.4中。出于文本搜索的目的,MongoDB将把每个字符“ABCDEFGHIJKLMNOPQRSTUVWXYZ”(POSIX语言环境中设置的“大写”字符)视为其小写等效字符,但它将把其他UTF-8代码点视为唯一的
UTF-8的全盒折叠支持将在未来发布;请参阅JIRA中的相关票证。我认为这是因为搜索实际上不区分大小写,或者说索引不区分大小写。但是在文档中,它是不区分大小写的()。或者它只适用于英语?@rill它可能只对英语区分大小写吗?很糟糕,text-seach还不支持俄语。UTF-8的大小写折叠支持是在3.2版本的文本索引中发布的。