Java SpringBoot整合Elasticsearch

Java SpringBoot整合Elasticsearch

创建工程,pom.xml引入依赖:

    
    
        org.springframework.boot
        spring-boot-starter
        引入版本号
    
    
	
    
        org.springframework.boot
        spring-boot-starter-test
        test
    

    
    
        org.springframework.boot
        spring-boot-starter-data-elasticsearch
        引入版本号(要和spring-boot版本匹配上) 
    

application.yml 配置:

​spring:
	  data:
	    elasticsearch:
	    	# ip 地址:端口号
	      cluster-nodes: "localhost:9300" 
	      cluster-name: "dawnopus-cluster"
	      repositories:
	        enabled: true

实体类:

@Data
@Document(indexName = "searchindex", type = "bond")
public class Data {

	// @Id:  key唯一标识符
    @Id
    private String id;
    
    
    // @Field(type = FieldType.Text): string
    @Field(type = FieldType.Text)
    private String name;
    
    }

持久层(DAO)

import domain.Data;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;
import org.springframework.data.domain.Pageable;

@Repository
public interface DataRepository extends ElasticsearchRepository {

/**

	//根据 名称查询
    List findByName(String name);


	//根据  名称分页查询       PageRequest pageRequest = PageRequest.of(0, 5);
    List findByName(String name,Pageable pageable);


	//根据 id,name,分页查询     用And或者Or链接
	List findByIdAndName(String id,String name,Pageable pageable);
}

service层 接口

public interface DataService{

	//根据 名称查询
    List findByName(String name);

	//根据  名称分页查询       PageRequest pageRequest = PageRequest.of(0, 5);
    List findByName(String name,Pageable pageable);

	//根据 id,name,分页查询     用And或者Or链接
	List findByIdAndName(String id,String name,Pageable pageable);
}

service层 实现

@Component
public class DataServiceImpl implements DataService{

	//持久层(DAO)
    @Autowired
    private DataRepository dataRepository ;

	//根据 名称查询
    @Override
    public List findByName(String name){
    return  dataRepository.findByName(name);
	}


	//根据  名称分页查询      
    @Override
    public List findByName(String name,Pageable pageable){
   		
   		//分页 0-5
 		PageRequest pageRequest = PageRequest.of(0, 5);
 		
        return dataRepository.findByName(name,pageRequest);
        
    }


	//根据 id,name,分页查询     用And或者Or链接
    @Override
    public List findByIdAndName(String id,String name,Pageable pageable){
    
       	//分页 0-5
 		PageRequest pageRequest = PageRequest.of(0, 5);
 		
        return dataRepository.findByName(id,name,pageRequest);
    }

}

以上这些都是自定义查询方法
extends ElasticsearchRepository类有自带的方法可以直接使用 (定义key唯一标识符)
插入: .save(data)
批量插入: .saveAll(list)
。。。

你可能感兴趣的:(elasticsearch,java,spring,boot)