ошибка при создании отображения {Ошибка: [mapper_parsing_exception] Нет обработчика для типа [строка], объявленного в поле [категория] - PullRequest
0 голосов
/ 03 января 2019

Я не могу решить проблему здесь. Я попытался создать сопоставление, чтобы мой код мог быть совместим с ES6x, но все еще не смог выяснить проблему. С моим кодом может быть какая-то проблема, но я не могу точно определить точную проблему.

Вот мой код index.js

Product.createMapping(
    {

           "products": {
               "properties": {
                   "category": {
                       "type": "keyword"
                   },
                   "name": {
                       "type": "text"
                   },
                   "price": {
                       "type": "double"
                   },
                   "image": {
                       "type": "text"
                   }
               }
           }


    }, function(err, mapping){
    if (err) {
        console.log('error creating mapping');
        console.log(err);
    }

    else{
        console.log('Mapping successfully created');
        console.log(mapping);
    }
});

var data = Product.synchronize();
var count = 0;

data.on('date', function(){
    count++;
});

data.on('close', function(){
    console.log('Indexed' + count + 'Documents');
});

data.on('error', function(err){
    console.log(err);
});

Вот мой код product.js.

var mongoose = require('mongoose');
var mongoosastic = require('mongoosastic');
var Schema = mongoose.Schema;

var schema = new Schema({
    category: {type: Schema.Types.ObjectId, ref: 'Category'},
    image: {type: String, required: true},
    name: {type: String, required: true},
    price: {type: Number, required: true}
});

schema.plugin(mongoosastic,{
    hosts: [
        'localhost:9200'
    ]
});



module.exports = mongoose.model('Product', schema);

1 Ответ

0 голосов
/ 24 мая 2019

Вы должны объявить es_type в объявлении схемы следующим образом:

var schema = new Schema({
category: {type: Schema.Types.ObjectId, ref: 'Category' ,es_type:'keyword'},
image: {type: String, required: true ,es_type:'text'},
name: {type: String, required: true ,,es_type:'text'},
price: {type: Number, required: true ,,es_type:'double'}
});
...