一、在建好项目之后,导入相应的基础依赖 - pom.xml文件
<!--SpringBoot--> <parent> <groupId> org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> </dependencies> |
二、去配置application.yml(端口号默认9200,不做更改的话可以不配置)
spring: elasticsearch: rest: uris: http://localhost:9200 |
三、配置配置类
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class ESApplication { public static void main(String[] args) { SpringApplication.run(ESApplication.class, args); } } |
四丶编写一个document对象
/** * @Document标记该对象是ES的文档对象 * indexName 索引库 * type 类型 */ @Document(indexName = "order",type = "_doc") @Data @NoArgsConstructor @AllArgsConstructor public class OrderDoc { /** * 标记为文档ID,该ID的值会作为document的id值 */ @Id private Long id; /** * Text需要分词 * 按ik_max_word分词建立倒排索引 * 查询按ik_max_word查询 */ @Field(type = FieldType.Text, analyzer = "ik_max_word", searchAnalyzer = "ik_max_word") private String goods; @Field(type = FieldType.Integer) private Integer count; @Field(type = FieldType.Date) @DateTimeFormat private Date createTime; /** * ES没有BigDecimal数据类型用Doubl */ @Field(type = FieldType.Double) private BigDecimal price; } |
五丶实现ElasticsearchRepository接口(ElasticsearchRepository<文档对象,文档对象中id的类型>)
@Repository public interface OrderRepository extends ElasticsearchRepository<OrderDoc,Long> { } |
六丶测试类
@Autowired private ElasticsearchRestTemplate template; @Autowired private OrderRepository orderRepository; @Test public void test(){ //创建索引 template.createIndex(OrderDoc.class); //创建映射 template.putMapping(OrderDoc.class); } @Test public void testAdd() { orderRepository.save(new OrderDoc(1L,"真爱坤", 10,new Date(),new BigDecimal("100.00"))); } @Test public void testGet() { System.out.println(orderRepository.findById(1L)); } /** * 修改和添加是同一个方法,Id存在就修改 */ @Test public void testUpdate() { orderRepository.save(new OrderDoc(1L,"小黑子",10, new Date(),new BigDecimal("250.00"))); } @Test public void testDelete() { orderRepository.deleteById(1L); } |
如果对您有所帮助,鄙人不胜荣幸!