ElasticSearch安装分词器与整合SpringBoot

embedded/2024/10/19 15:39:46/

ElasticSearch安装分词器与整合SpringBoot在这里插入图片描述

如果还没安装的点击安装ElasticSearch查看怎么安装

分词器

1.分词器

在Elasticsearch中,分词器(Tokenizer)是分析器(Analyzer)的一部分,它的主要职责是将文本输入(如字符串)分割成一系列的词元(tokens)。这些词元是搜索和索引的基础单元。

分词器的作用
  • 分割文本:将输入文本按照特定的规则分割成独立的词元。
  • 记录位置信息:为每个词元记录其在原始文本中的位置信息,如起始和结束字符偏移量。
  • 记录词元顺序:确定词元的顺序,这对于短语查询和词近邻查询非常重要。
内置分词器
  • Whitespace Tokenizer:按空白字符分割文本。
  • Standard Tokenizer:基于Unicode字符属性进行分词,类似于Java的String.split方法。
  • Punctuation Tokenizer:按标点符号分割文本。
  • Keyword Tokenizer:不进行分词,将整个输入文本作为一个词元。
  • Pattern Tokenizer:使用正则表达式进行分词。

2.ik分词器

在这里插入图片描述

  • 点击下载:注意你是什么版本的下什么版本,如:我的elasticsearch是7.6.2就下7.6.2
  • 解压后找到你的/usr/share/elasticsearch/plugins挂载的目录下,例如:
#当初我挂载的是/docker/elasticsearch/plugins
-v /docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins
  • 把解压后得到的ik目录放入plugins,只要ik目录,别是ik/ik/
  • 重启

3.测试分词器

  • 使用默认
POST _analyze
{ "text": "我是中国人"
}
  • 使用分词器
POST _analyze
{ "analyzer": "ik_smart", "text": "我是中国人"
}
  • 另外一个分词器ik_max_word
POST _analyze
{ "analyzer": "ik_max_word", "text": "我是中国人"
}

观察结果,就可以看出使用分词器之后的区别了

整合SpringBoot

Elasticsearch-Rest-Client

3.Maven导入
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.6.2</version>
</dependency>
2.配置
java">@Bean
RestHighLevelClient client() {
RestClientBuilder builder = RestClient.builder(new HttpHost("<你的虚拟机ip>", 9200, "http"));
return new RestHighLevelClient(builder);
}
3.测试
java">@Test
void test1() throws IOException {IndexRequest request = new IndexRequest("test").id("20").source("name","中国","id",20L);try {IndexResponse response = client.index(request, RequestOptions.DEFAULT);System.out.println(request.toString());IndexResponse response2 = client.index(request, RequestOptions.DEFAULT);} catch (ElasticsearchException e) {if (e.status() == RestStatus.CONFLICT) {}}
}

http://www.ppmy.cn/embedded/120043.html

相关文章

华为OD机试 - 积木最远距离(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

【SpringCloud】01-远程调用

1. RestTemplate 注册Bean SpringBootApplication public class CartServiceApplication {public static void main(String[] args) {SpringApplication.run(CartServiceApplication.class, args);System.out.println("cart启动成功");}Beanpublic RestTemplate re…

蜘蛛爬虫的ip来自机房,用户的爬虫来自于哪里

用户的爬虫可以来自多个不同的地方&#xff0c;具体取决于用户的配置和环境。以下是一些常见的来源&#xff1a; 1. 个人计算机 本地运行&#xff1a;许多用户可能会在自己的个人电脑上运行爬虫脚本&#xff0c;直接通过本地网络连接互联网。这种情况下&#xff0c;爬虫的 IP…

内连接的两种写法

1. **使用INNER JOIN的写法**&#xff1a; SELECT *FROM table1INNER JOIN table2ON table1.id table2.table1_id; - 这是现代SQL的标准写法&#xff0c;更清晰、更易于理解。 - JOIN关键字明确表示了连接操作&#xff0c;ON子句指定了连接条件。 - 支持多种类型的连接&…

CF1619D.New Year‘s Problem

CF1619D.New Year’s Problem 贪心 因为只能取到n-1个商店&#xff0c;因此当n-1 > m时一定会有两人在同一家商店买礼物 枚举哪一家商店&#xff0c;哪两个人买礼物&#xff0c;再与最优时候(不管n-1)的最小值取小代码附注释如下 #include<bits/stdc.h>using name…

HTML元素居中

⾏内元素⽔平垂直居中 设置⽗级标签。 ⽔平居中&#xff1a; text-align: center 垂直居中&#xff1a; line-height&#xff1a;盒⼦⾼度 ⽔平垂直都居中 <!DOCTYPE html> <html> <head><style>.container {position: relative;width: 200px;height: …

SpringBoot集成阿里easyexcel(二)Excel监听以及常用工具类

EasyExcel中非常重要的AnalysisEventListener类使用&#xff0c;继承该类并重写invoke、doAfterAllAnalysed&#xff0c;必要时重写onException方法。 Listener 中方法的执行顺序 首先先执行 invokeHeadMap() 读取表头&#xff0c;每一行都读完后&#xff0c;执行 invoke()方法…

2024 Fortinet OT工业安全高峰论坛成功举办

9月10日&#xff0c;“2024年Fortinet OT工业安全高峰论坛”于广州圆满闭幕。盛会紧扣“工业安全新行动&#xff0c;智驭AI新时代”主题&#xff0c;汇聚全球OT领域精英、技术先锋及安全领域翘楚&#xff0c;共谋OT现代化浪潮下的安全新篇章。通过多维度视角、深层次对话、鲜活…