今天安装使用了一下elasticsearch,期间碰到一些问题,记录下来以防忘记。
第一个是操作系统的选择:windows还是linux
像这种与服务器有关的最好用linux系统,但是笔记本不可能装linux,所以有两个方法:虚拟机或者Cygwin。两种环境我都试了,后面会说。
首先是下载安装包,说是安装包,其实解压即用,我就喜欢这种绿色环保的。
elasticsearch网站:https://www.elastic.co/downloads/elasticsearch
选择zip包,linux系统也可以用tar包,其实tar包在windows下用好压等也可以打开(各位看喜好了)
解压后进入bin目录 cmd运行elasticsearch.bat什么的网上一大堆,搜elasticsearch教程都看的到,这里不细说。
参考http://blog.csdn.net/cnweike/article/details/33736429
说一个问题,安装插件,那些教程都是plugin -install 实际上在window环境下是plugin install 用plugin -h 一看便知
安装好了,大家的心情都是用,我也是呀,可是照着教程做两步就一盆冷水浇头上
curl 'localhost:9200/' 这样都报错,我也是醉了
错误信息:
这就奇了怪了,还好我机智,仔细思考并尝试后发现不需要加引号’,蛋疼呀,此时我隐隐感觉还会出现更大的问题,果然没错
在 curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'时
任凭我再怎么机智都没有搞出来,报错如下:
{
"error" : {
"root_cause" : [ {
"type" : "mapper_parsing_exception",
"reason" : "failed to parse"
} ],
"type" : "mapper_parsing_exception",
"reason" : "failed to parse",
"caused_by" : {
"type" : "json_parse_exception",
"reason" : "Unrecognized token 'erew': was expecting ('true', 'false' or '
null')\n at [Source: org.elasticsearch.common.io.stream.InputStreamStreamInput@5
ed716e3; line: 1, column: 11]"
}
},
"status" : 400
}
如果你不加引号,还可能这样:
{
"error" : {
"root_cause" : [ {
"type" : "mapper_parsing_exception",
"reason" : "failed to parse"
} ],
"type" : "mapper_parsing_exception",
"reason" : "failed to parse",
"caused_by" : {
"type" : "not_x_content_exception",
"reason" : "Compressor detection can only be called on some xcontent bytes
or compressed xcontent bytes"
}
},
"status" : 400
}
此时的我已经知道问题了,肯定是cmd传数据的时候出问题,因为我在linux和Cygwin下运行这些命令都没有问题,然后百度了半天,因为都没有百度正确,所以没找到
然后是利用head工具看了一下索引信息,发现type是布尔型,难怪会说expecting ('true', 'false' or 'null')
最后百度到这篇文章
http://blog.csdn.net/lipei1220/article/details/8536520
豁然开朗,再双引号前加\即可,这应该是windows很多问题的根源,需要铭记!!
linux或者Cygwin就不说了,照教程就没有错!