elastic存数据失败

来源:17-5 向ElasticSearch存储数据

慕妹1160917

2022-01-18

2022/01/18 15:43:54 fetching http://localhost:8080/mock/www.zhenai.com/zhenghun
item Saver item #0 阿坝
panic: elastic: Error 400 (Bad Request): failed to parse [type=mapper_parsing_exception]

goroutine 6 [running]:
spider/crawler/persist.save({0x7391e0, 0xc00029c090})
D:/workspace/webspider/crawler/persist/itemSaver.go:40 +0x1e6
spider/crawler/persist.ItemSaver.func1()
D:/workspace/webspider/crawler/persist/itemSaver.go:19 +0xd6
created by spider/crawler/persist.ItemSaver
D:/workspace/webspider/crawler/persist/itemSaver.go:13 +0x6f
exit status 2

请帮忙看下

代码如下

func save(item interface{}) {
	client, err := elastic.NewClient(elastic.SetSniff(false))
	if err != nil {
		panic(err)
	}
	jitem, err := json.Marshal(item)
	if err != nil {
		panic(err)
	}
	resp, err := client.Index().
		Index("dating_profile").
		Type("zhenai").
		BodyJson(jitem).
		Do(context.Background())
	if err != nil {
		panic(err)
	}
	fmt.Println(resp)
}
写回答

1回答

ccmouse

2022-01-20

我查了一下,这个是BodyJson这里,它期待的是一个“对象”,会拿着这个对象去做Marshal,不需要我们事先Marshal。直接传入item即可。

0
0

Google资深工程师深度讲解Go语言 由浅入深掌握Go语言

语法+分布式爬虫实战 为转型工程师量身打造

5995 学习 · 1909 问题

查看课程