MongoDB全文搜索索引:错误:文本索引太多,为什么?

Arm*_*yan 6 java full-text-search mongodb mongodb-java

我有一个问题,我有收集,我想将文本搜索索引设置为2个字段(描述和标题).但是,当我添加第二个索引时,我得到以下错误,文本搜索停止工作.

{ "serverUsed" : "localhost/127.0.0.1:27017" , "ok" : 0.0 , "errmsg" : "too many text index for: testdb.users"}
Run Code Online (Sandbox Code Playgroud)

当我删除一个索引搜索再次开始工作.问题是什么?一个集合仅支持一个字段的全文搜索索引????

我在windows下使用当前版本的mongodb,我正在使用mongodb java驱动程序API.

谢谢

Phi*_*ipp 7

MongoDB每个集合只允许一个文本索引.

但是您可以使用跨越多个字段的文本索引:

db.collection.ensureIndex( {
    description: "text",
    title: "text"
} );
Run Code Online (Sandbox Code Playgroud)

这样,当您在搜索的短语中找到时,您将获得结果.如果这不是您想要的,就像您有两个搜索查询,每个搜索查询都返回其中一个字段而不是另一个字段的结果时,您有两个选项.

  1. 使用多字段文本索引,但丢弃来自应用程序层上错误字段的结果.
  2. 将两个字段中的一个提取到不同的集合中.该集合中的文档可以包含完整副本,编辑副本,也可以只包含您索引的字段和_id原始文档.

  • 你知道*为什么*他们有这个限制吗?我尝试四处寻找,但没有找到原因,只是声明存在限制。 (2认同)