[英]Elasticsearch Filter Dynamically Aggregated Fields
我正在尝试根据可用类别中的前端选择来搜索/过滤结果:
我能够获取命中数据和聚合数据,这为我提供了所有可用的产品类别、颜色和品牌。
现在,当有人选择一个品牌时,我希望能够通过 UriParams 将该变量发送到我的后端
'example.com/search?productBrand=Apple'
现在,对于一个过滤器,我可以做到,但如果用户选择 1 个品牌过滤器、2 个 Colors 和 3 个产品类别怎么办。 我怎么能在我的后端做到这一点?
这是我的身体 object,我使用 elastic-js 通过 Axios 发送
body: {
"query": {
"bool": {
"filter": [
{
"term": {
"mainCategory.v.keyword": "HaSoftrdware"
}
}
],
"must": [
{
"terms": {
"cObj.n.keyword": [
"Apple",
"Microsoft"
]
}
}
]
}
},
"from": from,
"size": 6,
"sort": [
{
"price": {
"order": "asc"
}
}
],
"aggs": {
"mainCategory": {
"terms": {
"field": "mainCategory.n.keyword",
}
},
"city": {
"terms": {
"field": "cObj.n.keyword",
}
},
"make": {
"terms": {
"field": "carMake.n.keyword",
}
},
"model": {
"terms": {
"field": "carModel.n.keyword",
}
},
"gasoline": {
"terms": {
"field": "carGasoline.n.keyword",
}
},
"adType": {
"terms": {
"field": "adType.keyword",
}
},
"carTable": {
"terms": {
"field": "carTable.n.keyword",
}
}
}
}
我是否需要预先定义后端中的所有内容或如何存档.. 过去 2-3 天这让我难以理解我正在苦苦挣扎
干杯
为了解决您的问题,您可以使用查询引擎(带有访问者设计模式)来生成搜索所需的适当查询正文。 此外,可以使用不同语言的 Elastic 客户端来实现您想要的。 您可以在此处找到弹性 node.js 客户端文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.