Kuzzle 在导入 CSV 日期字段时使用映射创建索引

Kuzzle create index with mapping when importing CSV date fields

我有一个 CSV 文件:

fname,lname,age,phone,address,dob
chris,jack,51,656-724-7821,aaaaa,03/01/2016 12:00:01 AM
joe,freds,44,545-724-7821,fsdfds sdfsdfsf sdfsdf,03/01/2015 12:00:01 AM

映射定义为:

const new1Mappings = {
        properties: {
            fname: {
                "type": "text"
            },
            lname: {
                "type": "text"
            },
            age: {
                "type": "integer"
            },
            phone: {
                "type": "text"
            },
            address: {
                "type": "text"
            },
            dob: {
                "type": "text" <----- issue is here
            }
        }
    };

现在使用 Kuzzle API 导入 CSV:

await kuzzle.collection.create('new1', 'contacts', new1Mappings);
await kuzzle.bulk.mWrite('new1', 'contacts', data); // data is an array built from the contents of the CSV file

当我将“dob”字段的映射类型设置为“文本”时,集合文档已创建但无法作为日期字段进行搜索。 如果我将“dob”的映射类型更改为“date”,则不会在集合中创建任何文档。

应将 CSV 日期字段指定为哪种映射数据类型?

你说得对,要能够在 dob 字段上搜索日期,你需要在映射中设置类型 date

关于文档的创建,您的数据需要符合Elasticsearch date type field data model

但是,您可以使用 Elasticsearch Multi date format 调整映射模型。

我传递的日期时间字符串格式不正确。

chris,jack,51,656-724-7821,aaaaa,03/01/2016 12:00:01 AM

为了

dob: {
         "type": "text" <----- issue is here
     }

所以我将 CSV 更改为

chris,jackson,51,444-555-555,aaaaa,2021-01-01 01:00:00

和映射到

dob: {
        "type": "date",
        "format": "yyyy-MM-dd HH:mm:ss"
     }

现在一切都很好。