Kuzzle 创建集合映射不起作用

问题描述

使用 kuzzle.collection.create('abc123','yellow-taxi',{deFinition});

在索引上创建集合。集合已创建,但未应用映射。

这是我使用的代码

const deFinition = {
    mappings: {
        dynamic: "true",properties: {
            vendorID: {
                "type": "integer"
            },tpep_pickup_datetime: {
                "type": "date"
            },........
        }
    },settings: {
    }
};

try {
    // Creates a collection
    await kuzzle.collection.create('abc123',{deFinition});
    // await kuzzle.collection.create('abc123','yellow-taxi');
    console.log('Collection');
} catch (error) {
    console.error(error.message);
}

这是我使用的 kuzzle 文档参考

https://docs.kuzzle.io/sdk/js/7/controllers/collection/create/#usage

enter image description here

kuzzle.create 之后 - 我跑了

const mapping = await kuzzle.collection.getMapping('abc123','yellow-taxi');
            console.log('mapping: ',mapping);

mapping:  { dynamic: 'false',properties: {} }

解决方法

您传递映射的方式不正确,您传递了一个包含 definition 属性的 POJO,该属性包含映射。您应该直接传递 definition 对象。

// don't
console.log({ definition }); // { definition: { mappings: ...,settings: ... } }

// do
console.log(definition); // { mappings: ...,settings: ... } 

await kuzzle.collection.create('abc123','yellow-taxi',definition);
,

好的,过了一会儿我决定用几个字段构建我自己的 CSV 文件并创建一个新的映射定义。这奏效了。所以看起来我对黄色出租车集合的映射定义有问题。

kuzzle.collection.create('abc123','黄色出租车',定义);

没有给出任何关于映射问题的通知。

我对 CSV 数据的映射是错误的。