文本索引权重和其他选项不适用于语言

时间:2017-08-10 22:54:06

标签: mongodb indexing

所以我尝试在我的本地环境(我自己的电脑中的Mongo)中为西班牙语索引一些项目,使用这样的权重:

db.news.createIndex({
      title: "text",
      description: "text"
    }, {
      default_language: "spanish"
    }, {
      weights: {
        title: 10,
        description: 5
      },
      name: "SpanishIndex"
    });

现在问题是它似乎不起作用,这是我的Robo3t索引屏幕:

名称和密钥不匹配

Name and Keys do not match

权重不匹配

Weights do not match

1 个答案:

答案 0 :(得分:1)

您实际上将“选项”错误地指定为三个单独的对象,而它应该是一个

  

Usage From Documentation: db.collection.createIndex(选项

所以你应该删除创建索引并重新正确创建:

db.news.dropIndexes();
db.news.createIndex(
  { title: "text", description: "text" },
  { 
    default_language: "spanish",
    weights: { title: 10, description: 5 },
    name: "SpanishIndex"
  }
)

然后会显示正确应用的选项:

  {
        "v" : 2,
        "key" : {
            "_fts" : "text",
            "_ftsx" : 1
        },
        "name" : "SpanishIndex",
        "ns" : "test.news",
        "default_language" : "spanish",
        "weights" : {
            "description" : 5,
            "title" : 10
        },
        "language_override" : "language",
        "textIndexVersion" : 3
    }