Я пытаюсь проиндексировать только поле «частности» boqEntry в экземпляре Elasticsearch с помощью Mongoosastic, а затем запросить их. «boqList» внутри BOQ состоит из boqEntries. Я определил мою схему, как описано в коде ниже. Я индексирую свой документ BOQ после загрузки их через FilePond. Всякий раз, когда я выполняю запрос (http://localhost:9200/boqss/boqs/_search) на Elasticsearch.
, я получаю такой ответ:
"hits": [
{
"_index": "boqss",
"_type": "boqs",
"_id": "5d9730d83f756d04a8d6dbfe",
"_score": 1.0,
"_source": {
"projectId": "5d860711cf3b052a34a84f6c",
"boqList": [
{
"particulars": "Excavation "
},
{
"particulars": "Providing & laying Rubble Soling"
},
{
"particulars": "Providing & laying PCC M10"
},
{
"particulars": "Providing & Laying Reinforcement With Cutting, Bending & Binding With Binding Wire Etc Complete."
},
{
"particulars": "Providing & Making Double Scaffolding"
},
{
"particulars": "Providing & Casting R.C.C M25"
},
{
"particulars": "Providing & Applying Cement Plaster"
},
...
Однако я хочу иметь возможностьИз массива boqList извлекаются только те конкретные «данные», которые соответствуют searchTerm из моего окна поиска, которое я внедряю в мой интерфейс на основе React, например, полнотекстовый поиск. Я относительно новичок в стеке MERN, Mongoose и Elasticsearch. Я был бы очень признателен за любую помощь. Спасибо !!
Вот схема мангуста:
const mongoose = require('mongoose')
const Schema = mongoose.Schema
var mongoosastic = require('mongoosastic')
const boqEntry = new Schema({
particulars : {type : String, es_indexed : true},
quantity : {type : Number},
unit : {type : String},
rate : {type : Number},
amount : {type : Number},
});
const BOQ = new Schema(
{
projectId : { type : String},
boqList : {type : [boqEntry], es_type : 'nested'}
},
{ timestamps: true },
);
BOQ.plugin(mongoosastic)
module.exports = mongoose.model('boqs', BOQ)