最新Elastic search7.13.1 Java API创建索引并且设置分词

1.# 系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

随着大数据的兴起,搜索越来越重要,ElasticSearch也越来越多人使用

提示:以下是本篇文章正文内容,下面案例可供参考

一、Maven依赖引入

maven:

		<dependency>
			<groupId>org.elasticsearch.client</groupId>
			<artifactId>elasticsearch-rest-high-level-client</artifactId>
			<version>7.13.1</version>
		</dependency>

二、创建ElasticSearch配置客户端

代码如下(示例):

public static RestHighLevelClient getRestHighLevelClient() {
        RestHighLevelClient client = new RestHighLevelClient(RestClient.builder(new HttpHost("192.168.0.201", 9200, "http")));
        return client;
}

三、创建索引

代码如下(示例):

private static void createIndex() throws Exception {
        CreateIndexRequest createIndexRequest = new CreateIndexRequest(LGY_LEARN_ES);
        XContentBuilder builder = XContentFactory.jsonBuilder();
        builder.startObject();
        {
            builder.startObject("properties");
            {
                builder.startObject("movie_id");
                {
                    builder.field("type", "long");
                }
                builder.endObject();
                builder.startObject("movie_name");
                {
                    builder.field("type", "text")
                            .field("analyzer", "ik_smart")
                            .field("search_analyzer", "ik_max_word");
                }

                builder.endObject();
                builder.startObject("movie_detail");
                {
                    builder.field("type", "text").field("analyzer", "ik_smart")
                            .field("search_analyzer", "ik_max_word");
                }

                builder.endObject();
            }
            builder.endObject();
        }

        builder.endObject();

        createIndexRequest.mapping(builder);
        CreateIndexResponse response = getRestHighLevelClient().indices().create(createIndexRequest, RequestOptions.DEFAULT);
        System.out.println(response);
    }

四、ik分词器详解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ik_max_word是做了最细粒度的拆分,比如:我爱你中国,会拆分成 “我爱你、爱你、中国”
ik_word是做了最粗粒度的拆分,比如:我爱你中国,会拆分成 “我爱你、中国”
standard是ES自带的分词器,默认只对英文分词,所以对中文分不了词,比如 我爱你中国,会拆分成 “我、爱、你、中、国”

五、查看效果

在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊狸的Java

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值