elasticSearch之索引模块

阅读: 评论:0

elasticSearch之索引模块

elasticSearch之索引模块

elasticSearch介绍与使用_陈海龙的格物之路-CSDN博客首先一起了解elasticSearch,然后结合springData,看看如何使用elasticSearch。

前言

通过上篇文章的介绍后,已经了解elasticSearch可以作为搜索引擎, 提供快速的搜索能力。为什么elasticSearch具有这种能力呢?

因为内部使用了索引。接下来,这篇文章将对索引进行介绍。

索引分析模块

首先要介绍的是index analysis module,索引分析模块,它用于注册分析器。

分析器将String field转化为多个分词,然后添加到反向索引中,以便进行文档搜索。

分析器是如何构成的?

字符过滤器接收原始文本并视为字符流,通过添加、删除、改变字符的方式对字符流进行转换。一个分析器可以有多个字符过滤器。
分词器

接收字符流,进行分词,输出分词流。例如空格分词器,利用空格对文本进行分词。

记录每个分词的顺序、位置,原始词的首尾偏移量。

一个分析器只有一个分词器。
分词过滤器接收分词流,对分词进行添加、删除、修改。例如小写分词过滤器、连接词分词过滤器。一个分析器可有多个分词过滤器

如何支持文本field进行全文搜索呢?

这就需要text analysis了。文本分析作用在于对非结构化的文本进行结构化转换,以便es进行全文

搜索,返回相关性结果,而不是绝对匹配的结果。

何时需要进行text analysis?

索引内有text field且需要进行文本搜索。

文本分析发生在什么情况呢?

文本分析发生在两个地方:

  • 对文档进行索引时,text field value会被分析。此时称为索引分析器。
  • 对text field进行全文搜索时,用户提供的搜索文本会被分析。此时称为搜索分析器。

这两种情况称为index and search analysis。

一般情况下,创建索引时和全文搜索时使用同一个分析器,确保进行分词匹配前使用同一套分析规则。

可以自定义分析器吗?

es提供了内置的分析器、字符过滤器、分词器、分词过滤器,同时支持自定义这些组件。

自定义分析器涉及的配置项:

type内置的分析器类型或自定义customBuilt-in analyzer reference | Elasticsearch Guide [7.15] | Elastic
tokenizer内置或自定义的分词器Tokenizer reference | Elasticsearch Guide [7.15] | Elastic
char_filter内置或自定义字符过滤器组成的数组Character filters reference | Elasticsearch Guide [7.15] | Elastic
filter内置或自定义分词过滤器组成的数组

举例说明

// 使用内置组件
{"settings": {"analysis": {"analyzer": {
// 自定义分析器名字"my_custom_analyzer": {
// 自定义分析器的组件配置"type": "custom", "tokenizer": "standard","char_filter": ["html_strip"],"filter": ["lowercase","asciifolding"]}}}}
}// 自定义组件
{"settings": {"analysis": {"analyzer": {
// 自定义分析器名字"my_custom_analyzer": { "char_filter": ["emoticons"],"tokenizer": "punctuation","filter": ["lowercase","english_stop"]}},"tokenizer": {
// 自定义分词器名称"punctuation": { "type": "pattern","pattern": "[ .,!?]"}},"char_filter": {
// 自定义字符过滤器名称"emoticons": { "type": "mapping","mappings": [":) => _happy_",":( => _sad_"]}},"filter": {
// 自定义分词过滤器名称"english_stop": { "type": "stop","stopwords": "_english_"}}}}
}

如何更好的支持中文场景呢?

有一个问题,需要搜索的文本时中文时,内置分析器的表现不符合预期,分词效果不好。需要引入支持中文的分析器elasticsearch-analysis-ik。

本文发布于:2024-01-29 03:12:28,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170646916212283.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模块   索引   elasticSearch
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23