MongoDB 2.4新的文本索引功能

时间:2013-03-20 19:17:30

标签: mongodb

所以我有一个奇怪配置的数据库导入MongoDB,如下所示:

"_id" : ObjectId("51191d45890311d9b2a0865d"),
"field1" : "randomtextstuff",
"field2" : "randomtextstuff",
"field3" : "randomtextstuff",
"field4" : "randomtextstuff",
"field5" : "randomtextstuff"

有些文件有100个字段,其他文件没有。

所以我想测试新的文本搜索,所以我尝试了以下索引:

db.profile_specialties.ensureIndex({"field1":"text",
"field2":"text",
"field3":"text",
"field4":"text",
"field5":"text",
"field6":"text",
... All the way to 100
"field96":"text",
"field97":"text",
"field98":"text",
"field99":"text",
"field100":"text"})

返回的错误消息是:

{
        "err" : "ns name too long, max size is 128",
        "code" : 10080,
        "n" : 0,
        "connectionId" : 1,
        "ok" : 1
}

还有其他人遇到过这个问题吗?

1 个答案:

答案 0 :(得分:2)

使用MongoDB 2.4文本搜索,您可以使用新的wildcard specifier ($**)来索引包含字符串内容的所有字段:

db.profile_specialties.ensureIndex("$**":"text"})

但是你应该考虑所有字段的文本索引会非常大。