分词器说明
在Elasticsearch搜索引擎中使用分词词库时,有两种用法:
● ik_max_word:会将文本做最细粒度的拆分,比如会将“昨夜西风吹折千林梢”
拆分为“昨夜西风,昨夜,西风,吹折千林梢,吹折,千林梢,千,林,折千林,千林,吹”,会 穷尽各种可能的组合。
● ik_smart:会做最粗粒度的拆分,比如会将“昨夜西风吹折千林梢”拆分为“昨 夜西风,吹折千林梢”。
示例指导
5. 在Dev Tools的Console中,输入如下代码,并单击 运行,您可以在右侧查看分 词效果。
– 使用ik_smart分词器,对“智能手机是很好用”文本内容进行分词。
示例代码:
POST /_analyze { "analyzer":"ik_smart", "text":"智能手机是很好用"
}
POST /_analyze
{ "analyzer":"ik_max_word", "text":"智能手机是很好用"
}
"position" : 8
{ "content":"智能手机是很好用"
}
(7.x及之后版本)
PUT /book/_doc/1
{ "content":"智能手机是很好用"
}
c. 使用关键字“智能手机”进行搜索,并查看搜索结果。
(7.x之前版本) "timed_out" : false, "_shards" : {
"max_score" : 1.7260926, "hits" : [
],
"match": { "desc": "高兴"
} }}
搜索结果:
(以7.x及之后版本为例)
{ "took" : 1, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1, "relation" : "eq"
},
"max_score" : 0.1519955, "hits" : [
{
"_index" : "myindex", "_type" : "_doc", "_id" : "1",
"_score" : 0.1519955, "_source" : {
"desc" : "我今天获奖了我很开心"
} } ] }}
7 简繁体转换插件
默认情况下云搜索服务安装了简繁体转换插件,用户无需自行安装。简繁体转换插件 是一款可以使中文简体和中文繁体相互转换的插件。通过该插件的转换,用户可以使 用中文繁体关键字搜索出包含对应中文简体的索引数据,也可以使用中文简体关键字 搜索出包含对应中文繁体的索引数据。
简繁体转换插件通常可以当做analyzer、tokenizer、token-filter或char-filter来使用。
简繁体转换插件的转换类型包含如下两种:
● s2t:将中文简体转换为中文繁体。
● t2s:将中文繁体转换为中文简体。
示例指导
1. 登录云搜索服务管理控制台。
2. 在左侧导航栏中,选择“集群管理”,进入集群列表页面。
3. 在集群列表中,单击需要使用的集群对应“操作”列的“Kibana”。
如果开启了安全模式,需要输入创建集群时设置的用户名和密码。
4. 在Kibana的左侧导航中选择“Dev Tools”,进入Console界面。
5. 在Console界面,执行如下命令,创建索引“stconvert”,并指定自定义映射来定 义数据类型。
7.x之前版本
PUT /stconvert { "settings": {
"number_of_shards": 1, "number_of_replicas": 0, "analysis": {
"analyzer": { "ts_ik": {
"tokenizer": "ik_smart", "char_filter": [ "tsconvert", "stconvert"
] } },
"char_filter": { "tsconvert": { "type": "stconvert", "convert_type": "t2s"
},
{ "acknowledged" : true, "shards_acknowledged" : true, "index" : "stconvert"
}
6. 在Console界面,执行如下命令,导入数据到“stconvert”索引中。
7.x之前版本
POST /stconvert/type/1 {
"desc": "國際電視臺"
}
7.x之后版本
POST /stconvert/_doc/1 { "desc": "國際電視臺"
}
当返回结果信息中“failed”字段的值为“0”时,表示数据导入成功。
7. 在Console界面,执行如下命令,搜索关键字“国际”,并查看搜索结果。
GET /stconvert/_search { "query": {
"match": { "desc": "国际"
} } }
搜索结果如下所示。
{ "took" : 15, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : 1,
"max_score" : 0.5753642, "hits" : [
{
"_index" : "stconvert", "_type" : "type", "_id" : "1",
"_score" : 0.5753642, "_source" : {
"desc" : "國際電視臺"
} } ] }}