为文本索引指定 Name

在本页面

索引的缺省 name 包含与_text连接的每个索引字段 name。对于 example,以下命令在contentusers.commentsusers.profiles字段上创建text索引:

db.collection.createIndex(
   {
     content: "text",
     "users.comments": "text",
     "users.profiles": "text"
   }
)

索引的默认 name 是:

"content_text_users.comments_text_users.profiles_text"

与其他索引一样,text索引必须位于index name 长度限制内。

为文本索引指定 Name

要避免创建 name 超过index name 长度限制的索引,可以将name选项传递给db.collection.createIndex()方法:

db.collection.createIndex(
   {
     content: "text",
     "users.comments": "text",
     "users.profiles": "text"
   },
   {
     name: "MyTextIndex"
   }
)

使用 Index Name 删除文本索引

无论文本索引是否具有缺省 name 还是为文本索引指定了 name,要删除文本索引,请将索引 name 传递给db.collection.dropIndex()方法。

对于 example,请考虑通过以下操作创建的索引:

db.collection.createIndex(
   {
     content: "text",
     "users.comments": "text",
     "users.profiles": "text"
   },
   {
     name: "MyTextIndex"
   }
)

然后,要删除此文本索引,请将 name "MyTextIndex"传递给db.collection.dropIndex()方法,如下所示:

db.collection.dropIndex("MyTextIndex")

要获取索引的名称,请使用db.collection.getIndexes()方法。

Updated at: 9 months ago
指定文本索引的语言Table of content使用权重控制搜索结果