从 OpenSearch 响应获取数据的部分代码:
searchResponse, err := search.Do(context.Background(), client)
if err != nil {
log.Fatal(err)
}
data, _ := ioutil.ReadAll(searchResponse.Body)
jsonMap := map[string]interface{}{}
json.Unmarshal([]byte(string(data)), &jsonMap)
json.NewEncoder(w).Encode(jsonMap)
任务是从hits -> attempts -> _source 中获取每个项目。
有一个想法是使用结构和映射到它,或者直接在界面中指定所有内容。
任务迭代的部分数据:
{
"_shards": {
"failed": 0,
"skipped": 0,
"successful": 1,
"total": 1
},
"hits": {
"hits": [
{
"_id": "11",
"_index": "catalog_product",
"_score": 1,
"_source": {
"attributes": [],
"brands": [
{
"id": 3,
"is_deleted": false,
"title": "GUCCI"
}
],
"description": "Разноцветную рубашку с короткими рукавами сшили из легкого нежного шелка с пиксельным 3D паттерном в виде логотипа марки. Модель, комфортно струящуюся по фигуре, дополнили накладным карманом. Яркое изделие станет цветовым акцентом в образе, но наши стилисты рекомендуют создать образ с парными шортами.",
"id": 11,
"is_deleted": false,
"medias": [
{
"id": 58,
"is_deleted": false,
"type": "photo",
"url": "https://st-cdn.tsum.com/sig/7573fb18b7bbfa4ba7bc2e36877be750/width/763/i/f7/de/19/01/fea10b33-937e-4099-99c2-a1dbb5a1041e.jpg"
}
]
}
}
]
}
}