ES学习和常用查询

1.使用ES的第一步,添加依赖

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

2.编写ES配置类EsConfig

package com.fh.config;

import org.elasticsearch.client.RestHighLevelClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.client.ClientConfiguration;
import org.springframework.data.elasticsearch.client.RestClients;
import org.springframework.data.elasticsearch.config.AbstractElasticsearchConfiguration;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;

/**
* @ClassName: ElasticsearchConfig
* @Author: 272126
* @Date: 2021/4/24 8:58
*/
@Configuration
@EnableElasticsearchRepositories
public class ElasticsearchConfig extends AbstractElasticsearchConfiguration {

@Override
@Bean
public RestHighLevelClient elasticsearchClient() {

final ClientConfiguration clientConfiguration = ClientConfiguration.builder()
.connectedTo("localhost:9200")//ip地址和es的端口号
.build();

return RestClients.create(clientConfiguration).rest();
}
}

3.新建service接口 extents ElasticsearchRepository<User,String>

package com.fh.service;

import com.fh.entity.User;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;
import java.util.Optional;

public interface UserService extends ElasticsearchRepository<User,String> {
}

4.测试增删改查

保存

@RequestMapping("Test")
public Object demo(User user) {
try {
User save = userService.save(user);
return save;
} catch (Exception e) {
return e.getMessage();
}
}

根据id查询
@RequestMapping("select2")
public Object demo4(String id){
Optional<User> byId = userService.findById(id);
User user = byId.get();
return user;
}
根据id删除
@RequestMapping("select3")
public Object demo5(String id){
userService.deleteById(id);
return "success";
}
查询所有
@RequestMapping("select4")
public Object demo5(){
Iterable<User> all = userService.findAll();
all.forEach(itme->{
System.out.println(itme.toString());
});
return null;
}
模糊查询
@RequestMapping("select")
public Object demo3(){
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
MatchPhraseQueryBuilder query = QueryBuilders.matchPhraseQuery("username", "王");
MatchPhraseQueryBuilder age = QueryBuilders.matchPhraseQuery("age", 87);
boolQueryBuilder.must(age);
boolQueryBuilder.must(query);
Iterable<User> search = userService.search(boolQueryBuilder);
search.forEach(item->{
String s = item.toString();
System.out.println(s);
});
return null;
}
posted @ 2021-06-02 10:50  liberalartsy  阅读(133)  评论(0)    收藏  举报