首先说明一下,刚开始学习时我本地jdk版本是1.7,Java客户端maven配置如下
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.4.1</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>5.4.1</version> </dependency>这样会报错,提示版本兼容方面的错误。于是把elasticsearch.client版本换到2.几,还是会报错。
最终的解决方案是jdk升级到1.8,elasticsearch.client版本使用5.4.1。我看网上的资料有的说是elasticsearch5在jdk1.7环境下也能运行,不知道是怎么配置的,看官网的文档描述如下(https://www.elastic.co/guide/en/elasticsearch/reference/5.4/setup.html)
Elasticsearch is built using Java, and requires at least Java 8 in order to run. Only Oracle’s Java and the OpenJDK are supported. The same JVM version should be used on all Elasticsearch nodes and clients.
We recommend installing Java version 1.8.0_131 or later. Elasticsearch will refuse to start if a known-bad version of Java is used.
也就是说jdk1.8是必须的。
出错场景1:
使用字段进行聚合操作;
eclipse控制台错误信息:
java.lang.IllegalArgumentException: Fielddata is disabled on text fields by default. Set fielddata=true on [result] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. Alternatively use a keyword field instead.
解决方法:
PUT /your_index/_mapping/your_type?update_all_types { "properties": { "your_fields": { "type": "text", "fielddata": true } } }返回 { "acknowledged": true }出错场景2:删除索引超时
DELETE /my_store返回504 timeout以为是命令错了或者版本的问题,各种试,最后发现是老爷机的内存被吃光了 =_=!