如何在弹性搜索中创建文档? 我正在使用curl来创建文档。但是,我收到以下错误
{"error":"MapperParsingException[failed to parse]; nested: JsonParseException[Unexpected character (''' (code 39)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')\n at [Source: [B@39312db4; line: 1, column: 2]]; ","status":400}
这是CURL命令
curl -XPUT localhost:9200/hello1/equipment/1 -d '{"hi":"val1"}'
答案 0 :(得分:2)
无需为此单独创建索引和映射。我想您正在尝试通过命令行创建(Windows等的cmd提示符)。
使用此声明:
curl -XPUT "http://localhost:9200/hello1/equipment/1" -d"{\"hi\":\"val1\"}"
在cmd提示符中引用字符为"
因此代替'
您必须使用双引号引用并在json正文内部,您必须转义您的双重引号使用\
告诉提示不要将它们视为引号。
答案 1 :(得分:1)
你应该通过附上单个倒置的逗号'http://localhost:9200/hello1/equipment/1'而不是localhost:9200 / hello1 / equipment / 1来试试这个....它应该可以工作!
所以创建文档的方式是合适的,首先你需要创建一个索引,所以在你的情况下为了把文档步骤放在下面:
创建索引
curl -XPUT 'http://localhost:9200/hello1'
创建映射(如果您不提供,则会动态创建)
curl -XPUT 'http://localhost:9200/hello1/equipment/_mapping' -d '{"equipment":{"text":{"type":string}}"}'
放置文件
curl -XPUT 'http://localhost:9200/hello1/equipment/1' -d '{"hi":"val1"}'