# elasticsearch-encode-plugin **Repository Path**: aqu415/elasticsearch-encode-plugin ## Basic Information - **Project Name**: elasticsearch-encode-plugin - **Description**: elasticsearch-encode-plugin - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-04-01 - **Last Updated**: 2023-05-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # elasticsearch-plugin #### 流程: ![](20181027122419946.png) #### 参考: 编号 | 说明 | 地址 | ------ | ----- |----- | 1 | 官网 | https://www.elastic.co/guide/en/elasticsearch/plugins/current/creating-stable-plugins.html 2 | Elasticsearch 插件开发简明指南 | https://mp.weixin.qq.com/s?__biz=MzAxMjY5NDU2Ng==&mid=2651862743&idx=1&sn=fd183ed2001123a6628843e03833c8d7&chksm=8049739eb73efa88d32a242618adf5c419193be8dca78aab70c3eea1478bf37dd8bf1baa1440&scene=27 3 | Elasticsearch插件开发指南:如何扩展Elasticsearch的功能 | https://blog.csdn.net/bairo007/article/details/129624584 4 | 基于elasticsearch6.2.3版本自定义插件开发遇到的问题总结 | https://www.likecs.com/show-204161388.html 5 | 【Elastic知识简报】normalizer与analyzer的区别 | https://blog.csdn.net/qq_24950043/article/details/122157226 6 | ES学习——分析器和自定义分析器 | https://blog.csdn.net/qq_25673113/article/details/83445146 #### 插件类型说明: - 分析插件:用于添加新的分析器、分词器、过滤器或标记器等(即上图中的任意组件-我的理解是这样)。 - 发现插件:用于添加新的发现机制或检测服务。 - 读写插件:用于添加新的读写操作或修改现有操作。 - 索引插件:用于添加新的索引存储类型或修改现有存储类型。 - 脚本插件:用于添加新的查询语言或修改现有查询语言。 - 其他插件:包括各种其他类型的插件,例如安全插件、监控插件等。 #### 源码: - 注册常用Filters: ``` org.elasticsearch.analysis.common.CommonAnalysisPlugin#getTokenFilters ``` - 可参考filter ``` org.elasticsearch.plugin.analysis.icu.AnalysisICUPlugin PatternReplaceCharFilter MappingCharFilterFactory ``` #### Normalizers: ``` Normalizers are similar to analyzers except that they may only emit a single token. As a consequence, they do not have a tokenizer and only accept a subset of the available char filters and token filters. Only the filters that work on a per-character basis are allowed. For instance a lowercasing filter would be allowed, but not a stemming filter, which needs to look at the keyword as a whole. The current list of filters that can be used in a normalizer is following: arabic_normalization, asciifolding, bengali_normalization, cjk_width, decimal_digit, elision, german_normalization, hindi_normalization, indic_normalization, lowercase, persian_normalization, scandinavian_folding, serbian_normalization, sorani_normalization, uppercase ``` #### 脚本 ``` PUT index { "settings": { "analysis": { "char_filter": { "quote": { "type": "mapping", "mappings": [ "« => \"", "» => \"" ] } }, "normalizer": { "my_normalizer": { "type": "custom", "char_filter": ["enc_filter"], "filter": ["enc_token_filter"] } } } }, "mappings": { "properties": { "foo": { "type": "keyword", "normalizer": "my_normalizer" } } } } ``` - 根据插件类型不同,设置不同的:char_filter、filter #### 安装插件 ``` ./elasticsearch-7.10.1/bin/elasticsearch-plugin install file:////home/es/enc-plugin-1.0-SNAPSHOT.zip ``` 或者直接解压到plugin目录 #### 查看插件 ``` http://192.168.158.101:9200/_cat/plugins ```