Kuzzle создать сопоставление коллекций не работает

#node.js #elasticsearch #kuzzle

Вопрос:

Используя kuzzle.collection.create(«abc123», «желтое такси», {определение});

чтобы создать коллекцию по индексу. Коллекция создается, но сопоставления не применяются.

Вот код, который я использую

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

try {
    // Creates a collection
    await kuzzle.collection.create('abc123', 'yellow-taxi', {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

введите описание изображения здесь

После kuzzle.create — я бегу

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

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

Ответ №1:

Способ, которым вы передаете сопоставления, неверен, вы передаете POJO, содержащий definition свойство, содержащее сопоставления. Вы должны передать definition объект напрямую.

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

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

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

Комментарии:

1. Когда я использую await kuzzle.collection.create («abc123», «желтое такси», определение); Без скобок керли сопоставления сохраняются, но без документов. Коллекция пуста.

Ответ №2:

Хорошо, немного погодя я решил создать свой собственный CSV-файл с несколькими полями и создать новое определение сопоставлений. Это сработало. Так что, похоже, в моем определении сопоставлений для коллекции желтых такси я что-то не так понял.

kuzzle.collection.create(«abc123», «желтое такси», определение);

не давал никаких уведомлений о проблемах с сопоставлениями.

Мои сопоставления данных CSV были неправильными.