gpt4 book ai didi

node.js - 从JavaScript客户端查询字符串查询

转载 作者:行者123 更新时间:2023-12-02 23:44:41 26 4
gpt4 key购买 nike

我正在使用Elasticsearch 5.5,我的查询是

client.search({
index: 'sample',
type: 'data',
body: {
"query": {
"query_string": {
"query": "state:req.params.state AND city:req.params.city AND postalcode:req.params.pc"
}
}
}
}
})

在此代码中 req.params.statereq.params.cityreq.params.pc是用户给定的值,这些值本身被视为value(string),并且不返回任何值,因为使用了双引号。

因此,当我尝试删除双引号时,未将使用的AND运算符验证为运算符并抛出错误。

最佳答案

好吧,您需要像这样以动态方式不同地构建查询。

const input = {
'state': 'state',
'city': 'city',
'pc': 'postcode'
};
const query = [];
Object.keys(input).forEach(p => {
if (req.params[p]) {
query.push([input[p], req.params[p]].join(":"));
}
});

client.search({
index: 'sample',
type: 'data',
body:{
"query":{
"query_string": {
"query": query.length ? query.join(" AND ") : "*"
}
}
}
})

关于node.js - 从JavaScript客户端查询字符串查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62146597/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com