在elasticsearch中创建文档

时间:2015-09-09 00:17:11

标签: elasticsearch

如何在弹性搜索中创建文档? 我正在使用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"}'

2 个答案:

答案 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"}'