[英]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.