2017-07-28 23 views
0

特定の製品IDを持つインデックスからドキュメントを削除しようとしています。DeleteByQuery ElasticSearch Golangエラーエラスティック:エラー404(見つかりません)

が、ここでのサンプルコードです:

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(私は文書が存在するかどうJUST確認するためにこれをしなかった)との文書を返します。

削除や、コードに何が間違っているのか、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

おかげ

は、ここでのマッピングです。

+0

ESログにもエラーがありますか? – Val

答えて

1

elastic.v3targets ES 2.xを使用していることが原因です。

あなたはES 5.3.1を使用しているので、あなたはとても単純

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

によって

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

このラインを交換し、あなたは問題ないはずです、elastic.v5を使用する必要があります。

+0

まあ、私はいつもelastic.v3がES 5.3.1のためだと思っています。私はまだelastic.v5への切り替えが解決するかどうか確認できませんでした。なぜなら、私はgolangを1.7にアップグレードしてelastic.v5を実行することができないからです(私はgolang 1.5.1を持っています)。それをテストすることはできませんが、これは正しい答えだと私は信じています。受諾する。ありがとう。 – whitewalker

+0

冷たくて、必要ならばここに戻ってくれて躊躇しないでください。 – Val

関連する問題