Добрый день.
Никак не могу разобраться что я делаю не так.
Есть схема
var ResponseSchema = new Schema({
date_create: {type: Date, default: Date.now},
author: {type: Schema.Types.ObjectId, ref: 'user', required: true},
text: {type: String, required: true, es_indexed: true, es_index_analyzer: "index_ru", es_search_analyzer: "search_ru"},
type: {type: String, default: 'response'},
type_status: String,
files: [{type: Schema.Types.ObjectId, ref: 'file'}],
task: {type: Schema.Types.ObjectId, ref: 'task'}
});
var TicketSchema = new Schema({
date_create: {type: Date, default: Date.now},
date_update: Date,
author: {type: Schema.Types.ObjectId, ref: 'user', required: true},
project: {type: Schema.Types.ObjectId, ref: 'project', required: true},
name: {type: String, required: true, es_indexed: true, es_index_analyzer: "index_ru", es_search_analyzer: "search_ru"},
text: {type: String, required: true, es_indexed: true, es_index_analyzer: "index_ru", es_search_analyzer: "search_ru"},
status: {type: String, default: 'wait_staff'},
labor: {type: Boolean, default: false},
files: [{type: Schema.Types.ObjectId, ref: 'file'}],
responses: {type: [ResponseSchema]}
});
TicketSchema.plugin(mongoosastic);
var Ticket = mongoose.model('ticket', TicketSchema);
Ticket.createMapping({}, function(err, mapping){
if (err) {
console.log(err);
} else {
console.log(mapping);
}
});
В итоге я хочу получить индекс по которому будет поиск по полям name, text схемы TicketSchema и по полю text схемы ResponseSchema которая внутри схемы TicketSchema представлена массивом вложенных схем ResponseSchemа (ну по коду видно).
Если выбросить ResponseSchema из индекса то всё работает замечательно, в индекс попадают поля name и text схемы TicketSchema, морфология русская работает - всё супер. А вот добавить еще поиск по ResponseSchema, так же с учетом морфологии не получается.
Если прописать у поля responses в TicketSchema es_type: "nested" то объекты схемы ResponseSchema попадают в индекс, при каком то раскладе (уже не помню как, много эксперементирую) мне даже удалось искать по полю text ResponseSchema и получать объекты TicketSchema, но без учета морфологии..
Вопрос, где и что я делаю не так...