elasticsearch入门(五)整合mysql+thymeleaf

ubuntu安装elasticsearch
基本用法
高级查询【上】
高级查询【下】
与springboot整合
整合mysql和thymeleaf

前面已经集成了springboot,现在要使用elasticsearch来共享msyql的数据以进行对应实体数据的模糊搜索。这里集成mysql的方式有点暴力,听说可以用插件实现,但是我没有成功。
具体思路是,当mysql进行插入操作时,elasticsearch也同时进行相同的插入操作,而mysql进行更新操作时,elasticsearch还是进行插入操作(用新的数据覆盖之前的值)。mysql进行删除时,elasticsearch也进行删除操作。
模糊查询我使用的索引字段是name,所以自定了一个方法。
对应的DAo类(这里的分页操作类似Jpa):

package com.lingfei.admin.mapper;

import com.lingfei.admin.entity.Notice;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;

/**
 * @author www.xyjz123.xyz
 * @date 2019/3/31 0:19
 */
@Component
public interface NoticeMapper extends ElasticsearchRepository{

    /**
     * 根据作者查找并分页
     * @param name 姓名
     * @param pageable
     * @return
     */
    Page findByName(String name, Pageable pageable);

    /**
     * 根据标题查找并分页
     * @param number
     * @param pageable
     * @return
     */
    Page findByNumber(String number, Pageable pageable);
}

control类:

package com.lingfei.admin.control;

import com.lingfei.admin.entity.Notice;
import com.lingfei.admin.service.NoticeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * @author www.xyjz123.xyz
 * @date 2019/3/30 21:12
 */
@Controller
@RequestMapping("es")
public class UserElasticControl {

    @Autowired
    private NoticeService noticeService;

    @GetMapping("/user")
    public String  getBookById(String name, Model model){
        Page opt = noticeService.findByName(name, PageRequest.of(0,10));
        model.addAttribute("pages",opt.getContent());  //获取page里的文本内容
        return "table1/esTable1";
    }
}

thymeleaf文件:

# 姓名 学号 班级 QQ 邮箱 电话 部门 余额 编辑 删除
编辑 删除

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