【发布时间】:2013-04-14 16:06:26
【问题描述】:
我正在尝试在 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
}
结果仅包含两个条目,但应该是三个。英语一切都很好。
【问题讨论】:
-
我认为这是因为搜索实际上不区分大小写,或者说索引不区分大小写。
-
但在文档中写道搜索不区分大小写 (docs.mongodb.org/manual/reference/command/text)。还是仅适用于英语?
-
@rill 只能区分英文大小写吗?
-
非常糟糕的是文本搜索还不支持俄语..