springboot操作Elasticsearch

@Data
@Document(indexName = "user")
public class User implements Serializable {

    @Id
    private String uId;

    private String name;

    private Integer age;

    private String address;

    //省略getter setter
}
@Repository
public interface UserRepository extends ElasticsearchRepository<User, String> {

    List<User> findAllByNameLike(String name);
    List<User> findAllByAddressLike(String name);

}
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public long count() {
        return userRepository.count();
    }

    public User save(User user) {
        return userRepository.save(user);
    }

    public void delete(User user) {
        userRepository.delete(user);
    }
    
    public Iterable<User> getAll() {
        return userRepository.findAll();
    }

    public List<User> getByName(String name) {
//        List<User> list = new ArrayList<>();
//        MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", name);
//        Iterable<User> iterable = userRepository.search(matchQueryBuilder);
//        iterable.forEach(e->list.add(e));
        return userRepository.findAllByNameLike(name);
    }

    public List<User> getByAdress(String name) {
        List<User> list = new ArrayList<>();
        MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("name", name);
        Iterable<User> iterable = userRepository.search(matchQueryBuilder);
        iterable.forEach(e->list.add(e));
        return list;
//        return userRepository.findAllByAddressLike(name);
    }

    public Page<User> pageQuery(Integer pageNo, Integer pageSize, String kw) {
        NativeSearchQuery searchQuery = new NativeSearchQueryBuilder()
                .withQuery(QueryBuilders.matchPhraseQuery("name", kw))
                .withPageable(PageRequest.of(pageNo, pageSize))
                .build();
        return userRepository.search(searchQuery);
    }
}
@RestController
public class UserController {
    @Autowired
    private UserService userService;


    @GetMapping("/testInsert")
    public void testInsert() {
        System.out.println("=================");
        User user = new User();
        user.setUId("6");
        user.setName("zhangsna");
        user.setAge(101);
        user.setAddress("广东省深圳");
        System.out.println(userService.save(user));

        user.setUId("4");
        user.setName("lisi");
        user.setAge(32);
        user.setAddress("广东省东莞");
        System.out.println(userService.save(user));

        user.setUId("5");
        user.setName("wangwu");
        user.setAge(34);
        user.setAddress("广东省珠海");
        System.out.println(userService.save(user));

    }

    @GetMapping("/testDelete")
    public void testDelete() {
        User user = new User();
        user.setUId("1");
        userService.delete(user);
    }

    @GetMapping("/testGetAll")
    public void testGetAll() {
        Iterable<User> iterable = userService.getAll();
        iterable.forEach(e -> System.out.println(e.toString()));
    }

    @GetMapping("/testGetByName")
    public void testGetByName() {
        List<User> list = userService.getByName("%lisi%");
        System.out.println(list);
        List<User> list1 = userService.getByAdress("%深圳%");
        System.out.println(list1);
    }

    @GetMapping("/testPage")
    public void testPage() {
        Page<User> page = userService.pageQuery(0, 10, "wangwu");
        System.out.println(page.getTotalPages());
        System.out.println(page.getNumber());
        System.out.println(page.getContent());
    }

http://localhost:5601/app/discover

后期更新整合logstash

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值