Можно ли как-нибудь преобразовать строку запроса, используя qs npm , в строку запроса эластичного облака?которые поддерживают все виды вложенных параметров запроса, больше чем, меньше, чем значения между диапазонами всех видов запросов?
любой модуль npm, код git-хаба или фрагмент кода, который это делает?Пример: для моего API я поддерживаю все виды параметров запроса, поддерживаемые модулем qs npm, где мой API поиска извлекается из эластичного облака.
, поэтому в случае, если я получаю запрос как
?title=Resurgence&causes=General&location.city=Mysuru&latitude=12.9803047&longitude=77.62949349999997&distance=50000&pageNumber=0&pageSize=10& organisation._id=5c36dd152edb5028fd7655a4
, тогда строка запроса будет преобразована в объект json модулем qs npm, и он даст объект json следующим образом:
{"title":"Resurgence","causes":"General","location.city":"Mysuru","latitude":"12.9803047","longitude":"77.62949349999997","distance":"50000","pageNumber":"0","pageSize":"10","organisation._id":"5c36dd152edb5028fd7655a4"}
Где при поиске в упругом поиске я предполагаю преобразовать его в упругий поисковый запросвозражать следующим образом.Итак, я просто искал модуль npm, который преобразует строку запроса json модуля qs в тело запроса эластичного облака?
{
"index": "researchArticles",
"from": 0,
"size": 10,
"body": {
"query": {
"bool": {
"must": [
{
"match": {
"status": "PUBLISHED"
}
},
{
"match": {
"title": {
"query": "Resurgence",
"operator": "or",
"prefix_length": 1
}
}
},
{
"match": {
"causes": {
"query": "General",
"operator": "or",
"prefix_length": 1
}
}
},
{
"match": {
"location.city": {
"query": "Bengaluru",
"operator": "or",
"prefix_length": 1
}
}
},
{
"match": {
"pageNumber": {
"query": "0",
"operator": "or",
"prefix_length": 1
}
}
},
{
"match": {
"pageSize": {
"query": "10",
"operator": "or",
"prefix_length": 1
}
}
},
{
"match": {
"organisation._id": {
"query": "5c36dd152edb5028fd7655a4",
"operator": "or",
"prefix_length": 1
}
}
}
],
"should": {
"range": {
"startDate": {
"gte": "now"
}
}
},
"filter": {
"geo_distance": {
"distance": "50000",
"location.geoSpatial": {
"lat": "12.9803047",
"lon": "77.62949349999997"
}
}
}
}
},
"sort": [
{
"_geo_distance": {
"location.geoSpatial": "12.9803047,77.62949349999997",
"order": "asc",
"unit": "m"
}
}
]
}
}