link
-
SpringCloud——ElasticSearch实战
- 1 首先要启动ElasticSearch 进入bin文件cmd——>elasticsearch
- 2 pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
- 3 实体类
@Document(indexName = "testgoods", type = "goods")
//indexName索引名称 可以理解为数据库名 必须为小写 不然会报org.elasticsearch.indices.InvalidIndexNameException异常
//type类型 可以理解为表名
public class GoodsInfo implements Serializable {
private Long id;
private String name;
private String description;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public GoodsInfo(Long id, String name, String description) {
this.id = id;
this.name = name;
this.description = description;
}
public GoodsInfo() {
}
}
- 4 dao
import com.example.elk.pojo.GoodsInfo;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;
@Component
public interface GoodsRepository extends ElasticsearchRepository<GoodsInfo, Long> {
}
- 5 ctrl
import com.example.elk.dao.GoodsRepository;
import com.example.elk.pojo.GoodsInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GoodsController {
@Autowired
private GoodsRepository goodsRepository;
//http://localhost:8888/save
@GetMapping("save")
public String save() {
Long goodId = System.currentTimeMillis();
GoodsInfo goodsInfo = new GoodsInfo(goodId,
"商品" + System.currentTimeMillis(), "这是一个测试商品");
goodsRepository.save(goodsInfo);
return "" + goodId;
}
//http://localhost:8888/delete?id=1525415333329
@GetMapping("delete")
public String delete(long id) {
goodsRepository.deleteById(id);
return "success";
}
//http://localhost:8888/update?id=1525417362754&name=修改&description=修改
@GetMapping("update")
public String update(long id, String name, String description) {
GoodsInfo goodsInfo = new GoodsInfo(id,
name, description);
goodsRepository.save(goodsInfo);
return "success";
}
//http://localhost:8888/getOne?id=1525417362754
@GetMapping("getOne")
public GoodsInfo getOne(long id) {
GoodsInfo goodsInfo = goodsRepository.findById(id).get();
return goodsInfo;
}
}
- 6 application.properties或application.yml
spring.data.elasticsearch.repositories.enabled = true
spring.data.elasticsearch.cluster-nodes =127.0.0.1:9300
- 7 如果你已经开启了kibana(cmd——>kibana)则利用语法: GET /index/type/id 或者直接利用接口