【问题标题】:Is it possible to pre-sort a text index in MongoDB?是否可以在 MongoDB 中对文本索引进行预排序?
【发布时间】:2019-09-11 15:22:23
【问题描述】:

我的理解是,在 MongoDB 中,常规(而非文本)索引是根据传递给 createIndex() 的参数进行预排序的。例如,db.collection.createIndex({ name: 1 }) 将创建一个按名称升序排列的文档索引。

是否可以使用文本索引来做到这一点?我有一个带有文本索引的大型 MongoDB 集合(数百万个文档)。当我对集合执行文本搜索时,我想按created 日期对结果进行排序......但排序操作总是耗尽内存。我可以设置文本索引,使其按created 日期预先排序(即检索结果后无需执行排序操作)?

【问题讨论】:

  • 对不起,我读错了文档,似乎不可能“排序操作无法从文本索引中获取排序顺序,即使是从复合文本索引中也是如此;即排序操作不能使用文本索引中的排序。 ”。显然,在文本索引上排序是 MongoDB 中的一个真正问题,跟踪器 jira.mongodb.org/browse/SERVER-26534 (和 Stack Overflow)上存在多个问题
  • @sheilak 谢谢!如果您将此评论变成答案,我会接受。

标签: mongodb


【解决方案1】:

根据text index docs这是不可能的:

排序操作无法从文本索引中获取排序顺序,即使从 复合文本索引;即排序操作不能使用排序 文本索引。

不幸的是,在文本索引上排序似乎是 MongoDB 中的一个真正问题。他们的追踪器上有多个相关问题SERVER-36087SERVER-24375SERVER-36794

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 1970-01-01
    • 2015-07-03
    相关资源
    最近更新 更多