当前位置:   article > 正文

Java中ES基础配置_es3从2主的情况下java存es如何配置?

es3从2主的情况下java存es如何配置?

ES在Java中基础配置

1. 启动

  • elasticsearch启动 ,在bin包下启动elasticsearch.bat
  • Kibana启动,在bin包下启动kibana.bat,然后访问localhost:5601

2.pom配置

  • spring-boot-start-data-elasticsearch
<dependency>
     <groupId>org.springframework.data</groupId>
     <artifactId>spring-data-elasticsearch</artifactId>
 </dependency>

  • 1
  • 2
  • 3
  • 4
  • 5

3.application.yml文件配置

spring:

   data:

    elasticsearch: #ElasticsearchProperties

        cluster-name: #默认即为elasticsearch

        cluster-node: #配置es节点信息,逗号分隔,如果没有指定,则启动ClientNode
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

4.实体类

  • 注解:
  • @Document (indexName=“article_index”,type=“article”,shards=5,replicas=1,indexStoreType=“fs”,refreshInterval="-1")
  • 在需要建立索引的类上加上@Document注解,即表明这个实体中属性需要进行索引,并且分词
    String indexName();//索引库的名称,个人建议以项目的名称命名

	String type() default "";//类型,个人建议以实体的名称命名
 
	short shards() default 5;//默认分区数
 
	short replicas() default 1;//每个分区默认的备份数
 
	String refreshInterval() default "1s";//刷新间隔
 
	String indexStoreType() default "fs";//索引文件存储类型
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • @Id 标明主键

5.创建Repository

  • //泛型的参数分别是实体类型和主键类型
public interface TRepository extends ElasticsearchRepository<T, Long>{
}
  • 1
  • 2

6.编写Service层及Controller层

  • Service层基础管理 示例 :
@Autowired
    private IBookRepository bookRepository;
	//查询所有数据
    @Override
    public List<Book> queryAll(){
        Iterable<Book> all = bookRepository.findAll();
        Iterator<Book> iterator = all.iterator();
        List<Book> books = new ArrayList<>();
        while(iterator.hasNext()){
            books.add(iterator.next());
        }
        return books;
    }
    //新增一条数据
    @Override
    public Book addOne(Book book){
        return bookRepository.save(book);
    }
	//通过id查询数据
    @Override
    public Book getOne(Long id){
        Optional<Book> byId = bookRepository.findById(id);
        return byId.get();
    }
     // 删除
    @Override
    public void delete(Long id){
        bookRepository.deleteById(id);
    }
    // 更新
    @Override
    public Book update(Book book) {
        Book save = bookRepository.save(book);
        return save;
    }
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • Service层分页查询 示例:
 public Page<User> getUsers() {
        //创建builder
        BoolQueryBuilder builder = QueryBuilders.boolQuery();
        //.boolQuery()下有must、should以及mustNot 相当于sql中的and、or以及not
        //设置模糊搜索,真实姓名中包含金的用户
        builder.must(QueryBuilders.fuzzyQuery("realname", "金"));
        //设置用户名为king
        builder.must(new QueryStringQueryBuilder("king").field("username"));
        //排序
        FieldSortBuilder sort = SortBuilders.fieldSort("age").order(SortOrder.DESC);
        //设置分页
        //====注意!es的分页和Hibernate一样api是从第0页开始的=========
        PageRequest page = new PageRequest(0, 2);

        //构建查询
        NativeSearchQueryBuilder nativeSearchQueryBuilder = new NativeSearchQueryBuilder();
        //将搜索条件设置到构建中
        nativeSearchQueryBuilder.withQuery(builder);
        //将分页设置到构建中
        nativeSearchQueryBuilder.withPageable(page);
        //将排序设置到构建中
        nativeSearchQueryBuilder.withSort(sort);
        //生产NativeSearchQuery
        NativeSearchQuery query = nativeSearchQueryBuilder.build();

        //执行,返回包装结果的分页
        Page<User> resutlList = userRepository.search(query);
        return resutlList;
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

7.注意事项

  • ES中API的端口号是9300而不是9200

  • ES系统中Elasticsearch.yml配置文件中要加入network.host: 0.0.0.0,否则外网地址访问不了

  • 最新的资料一定在官网上面查看,官网地址:https://www.elastic.co

  • 注意JDK、ES、Springboot三者之间的版本,很多时候错误都是版本冲突引起的

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/68376
推荐阅读
相关标签
  

闽ICP备14008679号