Archive for elasticsearch

logstash导入json文件的时候,内容被截断的问题

这问题困扰我了接近三天时间。之所以困扰这么久,总结下来一个是自己太急了,本来是已经开发完的功能,然后文件一多就json解析不通过。然后最近工期忙,所以心态更急,越急越是慌不择路,反而没啥用。第二个就是测试周期长,只有在程序跑了二三十分钟的时候才会出问题。 我每分析一个文件,就产生一个md5命名的json文件,然后通过logstash导入到es当中,然后显出json文件,继续分析下一个文件。 问题的现象就是,logstash再导入一些文件后,会报json解析的错误,我打印结果显示读取的json不全。然后我看生成的json文件为全的,所以感觉是读和写之间的逻辑有问题,然后疯狂尝试,但是效果没有。我尝试了flush文件,现在想想确实没啥用,所以对问题进行冷静分析很重要。然后让我觉得是logstash的插件有bug,然后我查了github的提交记录和issue都没找到相关内容。然后又去看插件源码,比较复杂,心态也导致根本看不进去。最后又绕回文档,看参数相关的配置。 然后为看到logstash能根据inode识别出文件重命名的文档后,意识到我删除文件重新创建文件可能导致文件重用inode,然后我搜索了一下文档关键字。logstash确实提供了一个参数去按照过期时间删除文件读取的偏移记录。让我确定是因为我删除文件又创建新文件导致的inode重用,然后logstash根据之前记录的偏移地址去读取的文件,导致json不全,然后报错。 最终我使用truncate清空文件,然后再创建新文件去解决的问题。
Read more...

elasticsearch安装中文分词组件elasticsearch-analysis-ik

下载代码并构建jar包。
git clone https://github.com/medcl/elasticsearch-analysis-ik
cd elasticsearch-analysis-ik
mvn package

复制到es目录里
mkdir -p ~/elasticsearch-2.3.3/plugins/ik
unzip target/releases/elasticsearch-analysis-ik-1.9.3.zip -d ~/elasticsearch-2.3.3/plugins/ik/


启动elasticsearch,
然后发现不能用root启动,只好换用户重新设置。。
默认es监听的127.0.0.1.修改config/elasticsearch.yml
network.host: 0.0.0.0 
我这是在虚拟机里改的。

测试中文分词

参考github上的提示执行了玩了一下。

我只能说目前比sphinx简单多了。
Read more...

Elasticsearch安装

之前用过sphinx,不选择sphinx的原因是用过,配置过太麻烦了,增量也不友好。之前用的场景也简单,对种子title和内容的检索。 现在决定用个别的试试学习一下,大体查了一下资料elasticsearch安装配置简单,需要安装java,提供http api调用。语言不是问题。 不用solr的原因是不走大流,没意思 哈哈,es的高端用户也挺多。 1 去Elasticsearch官网下载个包,解压。 2 执行./bin/elasticsearch启动,-d参数可以daemon启动 3 执行curl -X GET http://localhost:9200/ { "name" : "Vance Astrovik", "cluster_name" : "elasticsearch", "version" : { "number" : "2.3.3", "build_hash" : "218bdf10790eef486ff2c41a3df5cfa32dadcfde", "build_timestamp" : "2016-05-17T15:40:04Z", "build_snapshot" : false, "lucene_version" : "5.5.0" }, "tagline" : "You Know, for Search" }
Read more...

1