ES-文本分析(analysis)

0.简介    

    文本分析是指将文本进行特定的过滤、分词和转换的过程。

    在es进行倒排索引和进行文本搜索时,都可以预先对文本进行文本分析,经过文本分析后的结果会最后被建进倒排索引或者被发送进行真正的查询。

上图是文本分析器的可视化图,一个分析器包括字符过滤器、分词器和分词过滤器。

 

如下是定义一个定制化分析器的例子,analyzer内定义了分析器用到的字符过滤器、分词器和分词过滤器。

用如下配置的分析器对文本 "I'm delighted about it :(" 进行分析,可以得到以下分词:

[ I'm, delighted, about, it, _sad_ ]。

{
	"settings": {
		"analysis": {
		    //定制化分析器
			"analyzer": {
				"my_custom_analyzer": {
					"type": "custom",
					"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": {
				    //定义根据停止次过滤,_english_为默认的英语停止词集
					"type": "stop",
					"stopwords": "_english_"
				}
			}
		}
	}
}

1.索引分析器和检索分析器设置

如简介中所述,分析器可以用在文本建进倒排索引之前,也可以用于检索文档之时。

1.1索引分析器

如下示例为在构建索引的mapping时,为字段tile设置standard分析器。standard分析器为es默认的分析器,它综合了对大多欧洲语言来说,合理的默认模块。包括标准分词器(standard tokenizer, 见analysis-standard-tokenizer), 标准分词过滤器

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值