【问题标题】:DeleteByQuery ElasticSearch Golang error elastic: Error 404 (Not Found)DeleteByQuery ElasticSearch Golang 错误弹性:错误 404(未找到)
【发布时间】:2017-07-29 12:10:43
【问题描述】:

我正在尝试从我的索引中删除具有特定产品 ID 的文档。

示例代码如下:

package main

import (
    "encoding/json"
    "log"
    "time"
    "fmt"
    "gopkg.in/mgo.v2/bson"
    elastic "gopkg.in/olivere/elastic.v3"
)

func main() {

    client, err := elastic.NewClient(elastic.SetSniff(false), elastic.SetURL("http://localhost:9200"))
    if err != nil {
        log.Fatal("Cannot create ES client:", err)
    }
    boolQuery := elastic.NewBoolQuery().Must(elastic.NewTermQuery("productId", "1503368"))

    searchQuery := client.Search().Query(boolQuery).
        Index("magento1").Type("catalog")
    result, err := searchQuery.Do()
    for _, hit := range result.Hits.Hits {
        var data bson.M
        _ = json.Unmarshal(*hit.Source, &data)
        fmt.Println("SEARCH RESPONSE\n", data)
    }

    result2, err2 := elastic.NewDeleteByQueryService(client).
        Index("magento1").
        Type("catalog").
        Query(boolQuery).
        Do()
    fmt.Println("DELETE RESPONSE 2: \n", result2, err2)

}

SearchQuery 给出正确的响应并返回带有提供的 productId 的文档(我这样做只是为了验证文档是否存在)。

现在删除,我不知道代码到底有什么问题,或者 API 中是否缺少任何内容或必须添加额外内容(matchAll 等),但这个 deleteQuery 只是没有删除索引,而是总是给我回应:

error elastic: Error 404 (Not Found)

我已经搜索了所有博客/文档/官方库的 GitHub tests 案例等,但没有一个解决我的问题。尽管我已经解决了扫描/滚动和批量删除的问题,但我仍然想知道为什么如果它在官方文档中它不起作用。

这是映射:

"productId": bson.M{"type": "string", "store": true, "index": "not_analyzed"},

ES 版本: 5.3.1

谢谢。

【问题讨论】:

  • ES 日志中是否也有错误?

标签: elasticsearch go


【解决方案1】:

问题在于您使用elastic.v3 哪个targets ES 2.x

由于你使用的是ES 5.3.1,所以需要使用elastic.v5,所以只需替换这一行

elastic "gopkg.in/olivere/elastic.v3"

elastic "gopkg.in/olivere/elastic.v5"

你应该没事的。

【讨论】:

  • 好吧,我一直认为 elastic.v3 适用于 ES 5.3.1,因此从不费心去看。我仍然无法确认切换到 elastic.v5 是否会解决,因为我无法将我的 golang 升级到 1.7 来运行 elastic.v5(我有 golang 1.5.1)。虽然无法测试,但我相信这是正确的答案。接受。谢谢。
  • 酷,如果需要,请不要犹豫回到这里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-20
  • 1970-01-01
  • 2023-01-05
  • 1970-01-01
  • 2018-05-03
  • 2015-09-19
  • 2013-12-03
相关资源
最近更新 更多