1

我正在使用 Mongoose-Text-Search 插件 ( https://github.com/aheckmann/mongoose-text-search ) 来搜索我的 mongodb 数据库,但我收到了一条我从未见过的非常令人困惑的错误消息前。

error:  name=MongoError, ok=0, errmsg=error processing query: ns=testdb.data limit=100 skip=0
Tree: TEXT : query=test, language=, tag=NULL
Sort: { $s: { $meta: "textScore" } }
Proj: { $s: { $meta: "textScore" } }
planner returned error: failed to use text index to satisfy $text query (if text index is compound, are equality predicates given for all prefix fields?)

有人可以解释这是什么意思吗?我想我正确使用了文本搜索插件,但我一辈子都无法弄清楚这里出了什么问题。

谢谢!

4

1 回答 1

2
  1. 看起来您在 Mongodb 中创建了 COMPOUND 全文搜索索引。因此,您必须从全文搜索索引中请求数据以及其他字段。在这里查看详细信息: http: //docs.mongodb.org/manual/tutorial/limit-number-of-items-scanned-for-text-search/

有一些限制,例如您不能将由 $and/$or 等组成的 $gt/$gte/$lt/$lte/$in/$type 用于谓词字段。此处详细信息:https ://jira.mongodb.org/browse/SERVER-13801

  1. 升级到 Mongo 2.6.4 并通过离开 Mongoose-Text-Search 插件。该插件仅对 Mongo 2.4.x 有用,对于现代 Mongo 版本绝对是多余的。只需使用 find() 方法进行全文搜索。
于 2014-09-17T13:48:27.663 回答