Básicamente, tengo una solicitud para buscar documentos con etiquetas específicas adjuntas en el rango de creación entre la fecha de inicio y la fecha de finalización dadas. Uso el siguiente código para la consulta.
createBoolQuery(): Query { return ( esb .boolQuery() .filter(esb.termsQuery("tags", ["tag1", "tag2", "tag3"])) ); } createRangeQuery(): Query { const query = esb.rangeQuery("createdDate"); if (this._rangeStartDate) { const startDate = moment(this._rangeStartDate); query.gte(startDate.format("MM/DD/YYYY")); } if (this._rangeEndDate) { const endDate = moment(this._rangeEndDate); query.lte(endDate.format("MM/DD/YYYY")); } return query; } const queryconst searchQuery = esb.RequestBodySearch().query(this.createBoolQuery()).query(this.createRangeQuery())
searchQuery en el código anterior es
consulta: {rango: {fecha de creación: {gte: "29/09/2021", lte: "03/11/2021"}}}
que puede ver que falta la parte boolQuery, sin embargo, si reemplazo el código para usar solo boolquery, como
const searchQuery = esb.RequestBodySearch().query(this.createBoolQuery())entonces la consulta de búsqueda es
consulta: {filtro: {términos: {etiquetas: ["etiqueta1", "etiqueta2", "etiqueta3"]}}}}
Necesita mucha ayuda para usar solo una consulta que incluya tanto boolQuery como rangeQuery.