Полностью новый для ELASTICSEARCH
У меня есть mongoose schema
, определенный следующим образом
const newSchema = new mongoose.Schema({
name: String,
age: Number,
interests: [Objects],
});
newSchema.plugin(mongoosastic);
New = module.exports = mongoose.model('New', newSchema);
New.createMapping({
"settings": {
"number_of_shards": 1,
"number_of_replicas": 0,
"analysis": {
"filter": {
"nGram_filter": {
"type": "nGram",
"min_gram": 2,
"max_gram": 20,
"token_chars": [
"letter",
"digit",
"punctuation",
"symbol"
]
}
},
"analyzer": {
"nGram_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"asciifolding",
"nGram_filter"
]
},
"whitespace_analyzer": {
"type": "custom",
"tokenizer": "whitespace",
"filter": [
"lowercase",
"asciifolding"
]
}
}
}
},
"mappings": {
"new": {
"_all": {
"analyzer": "nGram_analyzer",
"search_analyzer": "whitespace_analyzer"
},
"properties": {
"name": {
"type": "string",
},
"age": {
"type": "string",
},
"interests": {
"type": "string",
},
}
}
}
}, function(err, mapping) {
if (err) {
console.log('error');
console.log(err);
} else {
console.log('mapping created!');
console.log(mapping);
}
});
Когда я запускаю вышеупомянутый проект, я получаю сообщение об ошибке:
сообщение: '[mapper_parsing_exception] Нет обработчика для типа [string], объявленного в поле [age]'
Что я делаю неправильно?Я совершенно новичок в упругом поиске, mongoosastic.
Я даже немного не знаю об упругом поиске, указанная выше функция createMapping
скопирована из Интернета.