简繁体转换插件
更新时间:2024-07-12
插件介绍
简繁体转换插件可以帮助用户完成简体中文与繁体中文的转换。用户可以通过该插件的转换功能,使用中文繁体关键字搜索出包含对应中文简体的索引数据,同样也可以使用中文简体关键字搜索出包含对应中文繁体的索引数据。
注意:目前简繁体转换插件支持除7.10.2版本外所有版本的Elasticsearch实例。
插件安装
百度云ElasticSearch在控制台的集群详情页面,【插件配置】-> 【系统插件】中提供了简繁体转换插件,找到简繁体转换插件,点击安装即可完成插件安装。
注意:需要重启集群后插件才可正常使用
使用说明及示例
简繁体转换插件的转换类型包含两种:
s2t:将简体中文转换为繁体中文。
t2s:将繁体中文转换为简体中文。
使用示例:
创建索引
Plain Text
1PUT /stconvert/
2{
3 "settings": {
4 "analysis": {
5 "analyzer": {
6 "st_ik": {
7 "tokenizer": "ik_smart",
8 "char_filter": [
9 "tsconvert",
10 "stconvert"
11 ]
12 }
13 },
14 "char_filter": {
15 "tsconvert": {
16 "type": "stconvert",
17 "convert_type": "t2s"
18 },
19 "stconvert": {
20 "type": "stconvert",
21 "convert_type": "s2t"
22 }
23 }
24 }
25 },
26 "mappings": {
27 "properties": {
28 "desc": {
29 "type": "text",
30 "analyzer": "st_ik"
31 }
32 }
33 }
34}
写入数据
Plain Text
1POST /stconvert/_doc/1
2{
3 "desc": "簡繁體轉換插件"
4}
数据搜索
Plain Text
1GET /stconvert/_search
2{
3 "query": {
4 "match": {
5 "desc": "转换"
6 }
7 }
8}
搜索结果
Plain Text
1{
2 "took": 1,
3 "timed_out": false,
4 "_shards": {
5 "total": 1,
6 "successful": 1,
7 "skipped": 0,
8 "failed": 0
9 },
10 "hits": {
11 "total": {
12 "value": 1,
13 "relation": "eq"
14 },
15 "max_score": 0.5753642,
16 "hits": [
17 {
18 "_index": "stconvert",
19 "_type": "_doc",
20 "_id": "1",
21 "_score": 0.5753642,
22 "_source": {
23 "desc": "簡繁體轉換插件"
24 }
25 }
26 ]
27 }
28}
可以看到使用简繁体插件转换后,我们可以通过简体关键字查询繁体结果。
分词结果
使用以下命令查看我们自定义分词器的分词结果
Plain Text
1POST /stconvert/_analyze
2{
3 "analyzer": "st_ik",
4 "text": "简繁体转换插件"
5}
返回结果
Plain Text
1{
2 "tokens": [
3 {
4 "token": "簡",
5 "start_offset": 0,
6 "end_offset": 1,
7 "type": "CN_CHAR",
8 "position": 0
9 },
10 {
11 "token": "繁",
12 "start_offset": 1,
13 "end_offset": 2,
14 "type": "CN_WORD",
15 "position": 1
16 },
17 {
18 "token": "體",
19 "start_offset": 2,
20 "end_offset": 3,
21 "type": "CN_CHAR",
22 "position": 2
23 },
24 {
25 "token": "轉",
26 "start_offset": 3,
27 "end_offset": 4,
28 "type": "CN_CHAR",
29 "position": 3
30 },
31 {
32 "token": "換",
33 "start_offset": 4,
34 "end_offset": 5,
35 "type": "CN_CHAR",
36 "position": 4
37 },
38 {
39 "token": "插件",
40 "start_offset": 5,
41 "end_offset": 7,
42 "type": "CN_WORD",
43 "position": 5
44 }
45 ]
46}
可以看到,实际搜索时已经将简体转换为繁体进行分词并执行搜索,与直接使用繁体进行分词搜索的结果是一样的。