Springboot集成spring data elasticsearch过程详解

发布时间:2020-09-12 00:03:48 作者:滚动的蛋
来源:脚本之家 阅读:185

版本对照

Springboot集成spring data elasticsearch过程详解

各版本的文档说明:https://docs.spring.io/spring-data/elasticsearch/docs/

1、在application.yml中添加配置

spring:
 data:
  elasticsearch:
   repositories:
    enabled: true
   #多实例集群扩展时需要配置以下两个参数
   #cluster-name: datab-search
   #cluster-nodes: 127.0.0.1:9300,127.0.0.1:9301  

  2、添加 Maven 依赖  

<!---开箱即用,版本默认和springboot版本对应-->
 <dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-data-elasticsearch</artifactId>
  </dependency>

3、建立实体entity
注解说明:  

  Spring Data通过注解来声明字段的映射属性,有下面的三个注解:

  示例:

@Document(indexName = "cp_doc", type = "doc", shards = 10, replicas = 0)
public class CpDocument extends BaseEntity {
 
  @Id//作用在成员变量,标记一个字段作为id主键
  private long id ;
  @Field(type = FieldType.Text)
  private String name ;
  @Field(type = FieldType.Text)
  private String address ;
  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 getAddress() {
  return address;
  }
  public void setAddress(String address) {
  this.address = address;
}

 4、编写 Repository 访问层 

/**
 * 基本操作repository-curd
 * @author 滚动的蛋
 *
 */
public interface CpRepository extends ElasticsearchRepository<CpDocument, Integer> {
}

  5、创建索引+查询示例 

@RunWith(SpringRunner.class)
@SpringBootTest
public class ElasticSearchTest {
  @Autowired
   CpRepository cpRepository;
  @Autowired
  ElasticsearchTemplate elsTemplate;//ElasticsearchTemplate中提供了创建索引的API<br data-filtered="filtered"><br data-filtered="filtered">
  @Test
  public void addIndexTest() {
    //创建索引
    boolean indexRes = elsTemplate.createIndex(CpDocument.class);
    System.out.println("======创建索引结果:"+indexRes+"=========");
    //添加索引
    CpDocument cpTest = new CpDocument();
    cpTest.setId(1);
    cpTest.setName("阿里巴巴");
    cpTest.setAddress("北京路12号");
    cpRepository.save(cpTest);
  }
   
  @Test
  public void srarchTest() {
    //这个只做一个多字段的匹配查询示例,其它的可以查看API文档使用
    //"name","address" 为匹配的字段
     MultiMatchQueryBuilder multiMatchQuery = QueryBuilders.multiMatchQuery("阿里巴巴","address","name");//多字段匹配QueryBuilder
     SearchQuery searchQuery = new NativeSearchQueryBuilder()//构建查询对象
         .withQuery(multiMatchQuery)
         .withIndices("cp_doc")//索引名
         .withPageable(PageRequest.of(0, 10))//分页
         .build();
     Iterable<CpDocument> productDtos = cpRepository.search(searchQuery);
     ArrayList<CpDocument> CpDocuments = Lists.newArrayList(productDtos);
     for (CpDocument cpDocument : CpDocuments) {
      System.out.printf("企业名称:%s,企业地址:%s\n",cpDocument.getName(),cpDocument.getAddress());
    }
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持亿速云。

推荐阅读:
  1. 全文检索ElasticSearch与Spring boot集成实例
  2. SpringBoot集成Elasticsearch过程实例

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

spring boot 集成

上一篇:一步一步跟我学易语言之关于变量

下一篇:Python Numpy库常见用法入门教程

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》