一、使用须知
由于 QQ 分词插件团队已暂停更新该插件,新购集群已在插件列表模块中去掉该插件,存量集群可正常使用。
QQ 分词插件仅支持数据节点规格在4核16G及以上的集群,如果集群未安装 QQ 分词插件,请在插件列表页面安装 QQ 分词插件(analysis-qq)。
QQ 分词插件提供如下的分析器(analyzer)和分词器(tokenizer):
·分析器:qq_smart, qq_max, qq_smart_ner, qq_max_ner。
·分词器:qq_smart, qq_max, qq_smart_ner, qq_max_ner。
你可以使用上述的分析器和分词器完成文档的分析和查询。你也可以通过词库配置功能,自定义更新分词词库,详情请参见下文的配置词库。
注意:QQ 分词插件现无法识别中文、英文以外的词,如上传的文件中包含其他语言的内容,分词结果会过滤这些内容,类似于过滤标点符号。
二、使用步骤
1. 登录已安装 QQ 分词插件的集群对应的 Kibana 控制台。登录控制台的具体步骤请参考 通过 Kibana 访问集群。
2. 单击左侧导航栏的 Dev Tools。
3. 在 Console 中使用 QQ 分词插件的分析器创建索引。
PUT /index{ "mappings": { "_doc": { "properties": { "content": { "type": "text", "analyzer": "qq_max", "search_analyzer": "qq_smart" } } } }}
上面的语句创建了一个名称为index的索引,类型为_doc(ES 7及以上版本需要在创建索引时加入?include_type_name=true才能支持类型)。包含了一个content属性,类型为text,并使用了qq_max和qq_smart分析器。执行成功后,将返回如下结果。
{ "acknowledged": true, "shards_acknowledged": true, "index": "index"}
4. 添加文档。
POST /index/_doc/1{ "content": "我从微信上下载了王者荣耀"}POST /index/_doc/2{ "content": "住建部:9月底前完成名镇名村景观资源登记"}POST /index/_doc/3{ "content": "中国气象台最新天气预报"}POST /index/_doc/4{ "content": "我家住在中国古建筑保护协会附近"}
上面的语句导入了4个文档,将使用qq_max分析器对文档进行分析。
5. 使用关键词高亮的方式查询文档。
GET index/_search{ "query" : { "match" : { "content" : "中国" }}, "highlight" : { "pre_tags" : ["<tag1>", "<tag2>"], "post_tags" : ["</tag1>", "</tag2>"], "fields" : {"content": {}} }}
上面的语句在所有_doc类型的文档中,使用qq_smart分析器,搜索content字段中包含中国的文档。执行成功后,返回如下结果。
{ "took" : 108, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 2, "relation" : "eq" }, "max_score" : 0.7199211, "hits" : [ { "_index" : "index", "_type" : "_doc", "_id" : "4", "_score" : 0.7199211, "_source" : { "content" : "我家住在中国古建筑保护协会附近" }, "highlight" : { "content" : [ "我家住在<tag1>中国</tag1>古建筑保护协会附近" ] } }, { "_index" : "index", "_type" : "_doc", "_id" : "3", "_score" : 0.6235748, "_source" : { "content" : "中国气象台最新天气预报" }, "highlight" : { "content" : [ "<tag1>中国</tag1>气象台最新天气预报" ] } } ] }}
三、使用自定义词典
1. 登录 Elasticsearch Service 控制台,在集群列表页,单击集群 ID/名称进入集群详情页。
2. 单击插件列表,进入插件列表管理页面。
3. 找到 QQ 分词插件(analysis-qq),单击右侧更新词典。
4. 词典文件要求如下。
·词典文件必须为 GBK 编码,一行一个词,且文件扩展名为.dic。
·单个文件最大为10M,上传文件总数最多为10个。
5. 单击保存。保存后,不会触发集群重启,但需要若干分钟触发集群变更使词典文件生效。
四、排查测试
如果你在使用 QQ 分词插件时,得到的结果不符合预期,可以通过下面的语句对分析器和分词器进行排查测试。
GET _analyze{ "text": "我家住在中国古建筑保护协会附近", "analyzer": "qq_max"}GET _analyze{ "text": "我家住在中国古建筑保护协会附近", "tokenizer": "qq_smart"}