首先导入需要的依赖:这里要注意导入的Jest版本号和你的elasticsearch版本号在同一大版本,我的ES是6.5.4,所以这里我用的6版本的jest
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 镜像ID
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>6.3.1</version>
</dependency>
安装ES的时候,注意内存不足的问题,之前在云主机上安装,多次因为内存分配问题,一直给我报错,气煞我也。
不熟悉ES语法的可以参照这里中文文档操作
写一个测试用例:
添加
@Autowired
private JestClient jestClient;
@Test
public void Insert() {
Article article = new Article();
article.setId(1);
article.setAuthor("老舍");
article.setTitle("家,春,秋");
article.setContent("hello elasticsearch");
Index index = new Index.Builder(article).index("mix").type("book").build();
try {
jestClient.execute(index);
} catch (IOException e) {
e.printStackTrace();
}
}
public class Article {
@JestId
private Integer id;
private String author;
private String title;
private String content;
//省略get set方法
}
访问:http://38.108.101.225:9200/mix/book/1 就会看到json字符串
如果是查找:
@Test
public void search(){
String json = "";
Search build = new Search.Builder(json).addIndex("mix").addType("book").build();
try {
SearchResult execute = jestClient.execute(build);
System.out.println(execute.getJsonString());
} catch (IOException e) {
e.printStackTrace();
}
}