elasticsearch,Powershell,Curl,elasticsearch" /> elasticsearch,Powershell,Curl,elasticsearch" />

批量插入elasticsearch curl powershell的问题

批量插入elasticsearch curl powershell的问题,powershell,curl,elasticsearch,Powershell,Curl,elasticsearch,我是Elasticsearch新手,我将按照教程加载示例数据: 当我尝试在powershell中大容量插入数据时 “curl-H”内容类型:application/x-ndjson'-XPOST'localhost:9200/shakespeare/_bulk?pretty'-data binary“@shakespeare.json” 我得到以下错误 PS C:\Development\elasticsearch-5.4.1\importdata>curl-H'内容类型:application

我是Elasticsearch新手,我将按照教程加载示例数据: 当我尝试在powershell中大容量插入数据时 “curl-H”内容类型:application/x-ndjson'-XPOST'localhost:9200/shakespeare/_bulk?pretty'-data binary“@shakespeare.json”

我得到以下错误

PS C:\Development\elasticsearch-5.4.1\importdata>curl-H'内容类型:application/x-ndjson'-XPOST'localhost:9200/shakespeare/_bulk?pretty'-data binary“@shakespeare.json” 调用WebRequest:无法绑定参数“Headers”。无法转换“System.St”类型的“Content-Type:application/x-ndjson”值 按“to type”键,输入“System.Collections.IDictionary”。 第1行字符:9 +curl-H'内容类型:application/x-ndjson'-XPOST'localhost:9200/s。。。 + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +CategoryInfo:InvalidArgument:(:)[Invoke WebRequest],ParameterBindingException +FullyQualifiedErrorId:CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.InvokeWebRequestCommand

我尝试过几种方法,阅读了批量api文档,但没有结果

以下是json文件内容的一些示例:

{“索引”:{“索引”:“莎士比亚”,“类型”:“表演”,“id”:0} {“台词id”:1,“演奏名称”:“亨利四世”,“演讲编号”:“台词编号”:“演讲者”:“文本条目”:“第一幕”} {“索引”:{“索引”:“莎士比亚”,“类型”:“场景”,“id”:1} {“台词id”:2,“剧本名称”:“亨利四世”,“演讲编号”:“台词编号”:“演讲者”:“文本条目”:“场景一。伦敦。宫殿”。} {“索引”:{“索引”:“莎士比亚”,“类型”:“行”,“id”:2}
{“台词id”:3,“演奏名称”:“亨利四世”,“演讲编号”:“台词编号”:“演讲者”:“文本条目”:“输入亨利国王、兰开斯特的约翰勋爵、威斯特摩兰伯爵、沃尔特·布朗特爵士和其他人”}

我找到了解决办法。因为我在windows和powershell上使用了curl,所以我必须进行翻译

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json

当我使用演示文件时,大容量插入没有成功,但这是另一个问题


PS C:\Development\elasticsearch-5.4.1\importdata>$postParams=Get Content“shakespeare.json”

我找到了解决方案。因为我在windows和powershell上使用了curl,所以我必须进行翻译

curl -H 'Content-Type: application/x-ndjson' -XPOST 'localhost:9200/shakespeare/_bulk?pretty' --data-binary @shakespeare.json

当我使用演示文件时,大容量插入没有成功,但这是另一个问题


PS C:\Development\elasticsearch-5.4.1\importdata>$postParams=Get Content“shakespeare.json”

当使用大容量注入时,json数据的结构是不同的,您基本上需要添加索引/type/id作为json的一部分:这里有更多信息,您也在powershell/Invoke WebRequest中使用unix/curl,您应该使用Invoke RestMethod,而不是imo。最后,URI应该是
localhost:9200/\u bulk
。这些注释无法解决所有问题,因为我没有看到sharespeare.json文件,但它应该能让您更接近它。我添加了shakespeare.json文件的一些示例行。一切似乎都是正确的。我尝试了Invoike RestMethod,但没有结果任何人都知道我为什么会出现这样的异常“Invoke WebRequest:Cannot bind parameter”Headers。无法将“System.St ring”类型的“Content-Type:application/x-ndjson”值转换为“System.Collections.IDictionary”类型。使用大容量注入时,json数据的结构不同,您基本上需要添加索引/type/id作为json的一部分:这里有更多信息,您在powershell/Invoke WebRequest中经常使用unix/curl,您应该使用Invoke RestMethod,而不是imo。最后URI应该是
localhost:9200/\u bulk
。这些注释无法解决所有问题,因为我没有看到sharespeare.json文件,我添加了一些shakespeare.json文件的示例行。一切似乎都是正确的。我尝试了Invoike RestMethod,但没有结果任何人都知道我为什么会出现这样的异常“Invoke WebRequest:Cannot bind parameter”Headers。无法将“System.St ring”类型的“Content-Type:application/x-ndjson”值转换为“System.Collections.IDictionary”类型