Elasticsearch, MongoDb, Mongoosastic запрашивающий массив объектов - PullRequest
0 голосов
/ 07 октября 2019

Я пытаюсь проиндексировать только поле «частности» 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)
...