Es的使用手册(小白版)

1.引入依赖

        在引入依赖的时候,需要注意实际使用es版本与代理版本的对应关系,以及与spring版本的兼容性问题。

        这里使用的是es的7.17.27版本 对应spring 2.5.9

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

    
     <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.5.9</spring-boot.version>
    </properties>

2.使用例子:

        ①实体类

        创建实体类Biz,其中@Document对应es中的索引名称(类似于mysql中的表的结构),@field表示文档类型(类似mysql中的字段)

@Document(indexName = "biz")
@Data
public class biz {
    
    @Id
    @Field(store=true, index = false,type = FieldType.Integer)
    private  Integer id;

    //模糊匹配
    @Field(store=true, type = FieldType.Text, analyzer = "ik_max_word")
    private String ProjectName;

    //精确查找
    @Field(store=true, type = FieldType.Keyword)
    private  String Industry;
    @Field(store=true, type = FieldType.Keyword)
    private String regions;
    @Field(store=true, type = FieldType.Keyword)
    private String announcementType;
}

        ②Repository接口

        继承ElasticsearchRepository类,同时使用对应的实体类和主键类型作为泛型

@Repository
public interface BizRepository  extends ElasticsearchRepository<biz,Integer> {
}

3.业务代码的时候

        在业务代码中,只需要自动注入Repository接口。从而调用接口的方法即可开启使用啦。这里简单实现了一个分批处理的逻辑。

@SpringBootTest
class EsDemoApplicationTests {

    @Autowired
    private dao bizmapper;
    @Autowired
    private BizRepository bizrepository;

    @Test
    void contextLoads() {
        //分批获取
        int batchSize=99;
        int start=1;

        while(true){
            List<BizMysql> list=new ArrayList<>();
            QueryWrapper<BizMysql> queryWrapper = new QueryWrapper<>();
            queryWrapper.select("id","project_name","regions","industries","announcement_type");
            queryWrapper.between("id", start, start+batchSize);
            queryWrapper.orderByAsc("id");
            list=bizmapper.selectList(queryWrapper);
            if(list==null&&list.size()==0){
                break;
            }
//            System.out.println(list);
            for(BizMysql bizmq : list){
                System.out.println(bizmq);
                biz sa=new biz();
                sa.setId(bizmq.getId());
                sa.setProjectName(bizmq.getProjectName());
                sa.setRegions(bizmq.getRegions());
                sa.setIndustry(bizmq.getIndustries());
                sa.setAnnouncementType(bizmq.getAnnouncementType());
                bizrepository.save(sa);
            }
            start+=batchSize+1;
        }
        System.out.println(start);
    }

}

补充:

        结合之前的mybatis-plus的使用就可以简单实现一个从mysql拷贝数据到es的代码。但是有些推荐使用datax工具来进行数据的同步、也有大佬推荐使用cannel来实现数据的同步。后续试过再发布教程。

Elasticsearch使用手册包含了许多详细的文档和指南,帮助用户了解和使用Elasticsearch。你可以在官方网站上找到这些文档和指南。API文档提供了Elasticsearch的各种API的详细说明和用法示例,可以帮助用户执行各种操作。例如,通过使用API可以执行搜索操作,如在指定的索引中搜索符合特定条件的文档。你可以使用像GET /shakespeare/_search?from=0&size=5这样的API请求来执行搜索操作,并使用查询语句来指定搜索条件。此外,使用elasticsearch-plugin命令可以安装插件,如ik分词器插件,可以提供更高级的文本分析功能。你可以通过运行命令elasticsearch-plugin install [插件下载地址来安装插件。另外,Elasticsearch支持集群模式,你可以在一个集群中拥有多个节点,可以通过启动一个节点来创建并加入一个默认的集群。这些节点可以协同工作,提供高可用性和可伸缩性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Elastic Search 入门使用说明](https://blog.youkuaiyun.com/hellwindy/article/details/128379808)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值