mattbaird / elastigo

A Go (golang) based Elasticsearch client library.
Apache License 2.0
943 stars 241 forks source link

DELETE /_query endpoint removed #289

Closed wolfogre closed 1 year ago

wolfogre commented 7 years ago

The DELETE /_query endpoint provided by the Delete-By-Query plugin has been removed and replaced by the Delete By Query API.

See the document

But mattbaird/elastigo still use it:

func (c *Conn) DeleteByQuery(indices []string, types []string, args map[string]interface{}, query interface{}) (BaseResponse, error) {
    var url string
    var retval BaseResponse
    if len(indices) > 0 && len(types) > 0 {
        url = fmt.Sprintf("/%s/%s/_query", strings.Join(indices, ","), strings.Join(types, ","))
    } else if len(indices) > 0 {
        url = fmt.Sprintf("/%s/_query", strings.Join(indices, ","))
    }
    body, err := c.DoCommand("DELETE", url, args, query)
    if err != nil {
        return retval, err
    }
    if err == nil {
        // marshall into json
        jsonErr := json.Unmarshal(body, &retval)
        if jsonErr != nil {
            return retval, jsonErr
        }
    }
    return retval, err
}

Calling it would cause a error: record not found