這是我使用 Postman 為此端點(diǎn)的請求正文localhost:9201/response_v2_862875ee3a88a6d09c95bdbda029ce2b/_search{"_source": ["_id"],"from": 1,"size": 10,: { "should": { "match": { } }, { "range": { "_updated_at": { "from": "36163", "include_lower": true, "include_upper": true, "to": null } } }] }}}到此網(wǎng)址 localhost:9201/rensedbda029ce2b/_search我得到了結(jié)果https://gist.gith但是當(dāng)我從服務(wù)器向 ES 發(fā)出相同的請求時(shí),我收到一條錯(cuò)誤消息“elastic: Error 400 (Bad Request): Expected [START_OBJECT] but found [START_ARRAY] [type=parsing_exception]”這些是我的代碼的一些片段。我從另一個(gè) util 函數(shù)獲取查詢,并在調(diào)用 ES 時(shí)使用它。這是對ES的調(diào)用res, err = r.esConn.Search(indexName).e(requestBody.ResponsePageLength).Do(ctx)查詢構(gòu)建器函數(shù)是這樣的,它接受從對我的服務(wù)器的請求正文中提取的參數(shù),并基于該參數(shù)構(gòu)建查詢。func CreateMonitoringPipeline(maxResponseTime string, responseQueries []ResponseQuery, baselineFormId string) *elastic.BoolQuery {finalQuery := elastic.NewBoolQuery() dateRangeMatchQuery := elastic.NewRangeQuery("_updated_at"). Gte(maxResponseTime) finalQuery.Filter(dateRangeMatchQuery)}return finalQuery}我不明白為什么會(huì)發(fā)生這種情況?我的 ES 使用 ES 二進(jìn)制文件運(yùn)行,我的服務(wù)器在 docker 容器中運(yùn)行。對 ES 和 golang 完全陌生,所以請幫忙。
1 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
這["_id"]
就是正在發(fā)送的請求。問題出在請求行中,因?yàn)?code>Source([]string{"_id"})沒有將源字段設(shè)置為["_id"]
您想要的,而是:
Source 允許用戶手動(dòng)設(shè)置請求正文,而無需使用 Elastic 中的任何結(jié)構(gòu)和接口。
你想改用FetchSourceContext
:
res,?err?=?r.esConn.Search(indexName).From(requestBody.MaxResponseTimestampCount).FetchSourceContext(elastic.NewFetchSourceContect(true).?Include("_id")).Query(query).Size(requestBody.ResponsePageLength).Do(ctx)
- 1 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報(bào)
0/150
提交
取消