Closed Hevienz closed 5 years ago
有再具体一点的信息么? 词典是 utf8么? 测试流程如何?
您好,这是我们的构建方法。 https://github.com/QingCloudAppcenter/ELK/tree/master/docker-image/xpack/6.1.1/elasticsearch-x-6.1.1
此配置文件采用Go的text/template语法 https://github.com/yunify/confd/blob/master/docs/templates.md
配置文件中不配置任何分词词典时可以对“中国”进行正常的分词。 而配置自定义词典后无法正常分词。
词典里面的单字词典去掉:extra_single_word
您好,我去掉了单字词典,测试结果未成功。
渲染后的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>IK Analyzer 扩展配置</comment>
<!--用户可以在这里配置自己的扩展字典 -->
<entry key="ext_dict">custom/jieba.dic;main.dic;quantifier.dic;suffix.dic;extra_main.dic;preposition.dic;surname.dic</entry>
<!--用户可以在这里配置自己的扩展停止词字典-->
<entry key="ext_stopwords">custom/stop_words.dic;extra_stopword.dic;stopword.dic</entry>
<!--用户可以在这里配置远程扩展字典 -->
<entry key="remote_ext_dict"></entry>
<!--用户可以在这里配置远程扩展停止词字典-->
<entry key="remote_ext_stopwords"></entry>
</properties>
我的测试步骤如下:
1 由于安装了x-pack,所以首先执行./x-pack/setup-passwords interactive设置密码
2 使用如下测试脚本测试:
HOST=elastic:changeme@127.0.0.1
# 创建 index 索引
curl -XPUT -H 'content-type: application/json' http://$HOST:9200/index
# 创建 mapping
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/_mapping -d'
{
"properties": {
"content": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_max_word"
}
}
}'
# 索引 一些 文档
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/1 -d'
{"content":"美国留给伊拉克的是个烂摊子吗"}
'
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/2 -d'
{"content":"公安部:各地校车将享最高路权"}
'
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/3 -d'
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
'
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/4 -d'
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
'
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/5 -d'
{"content":"北京优帆科技有限公司于2012年4月正式成立,是全球首家实现资源秒级响应并按秒计量的基础云服务商"}
'
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/6 -d'
{"content":"青云的12字决:从初创企业到云生态的蜕变"}
'
printf "\n\n"
# 高亮 查询
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/_search -d'
{
"query" : { "match" : { "content" : "中国" }},
"highlight" : {
"pre_tags" : ["<tag1>", "<tag2>"],
"post_tags" : ["</tag1>", "</tag2>"],
"fields" : {
"content" : {}
}
}
}
'
printf "\n\n"
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/_search -d'
{
"query" : { "match" : { "content" : "青云" }},
"highlight" : {
"pre_tags" : ["<tag1>", "<tag2>"],
"post_tags" : ["</tag1>", "</tag2>"],
"fields" : {
"content" : {}
}
}
}
'
printf "\n\n"
curl -XPOST -H 'content-type: application/json' http://$HOST:9200/index/fulltext/_search -d'
{
"query" : { "match" : { "content" : "优帆科技" }},
"highlight" : {
"pre_tags" : ["<tag1>", "<tag2>"],
"post_tags" : ["</tag1>", "</tag2>"],
"fields" : {
"content" : {}
}
}
}
'
printf "\n\n"
测试结果如下:
{"took":67,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":3,"max_score":2.6018782,"hits":[{"_index":"index","_type":"fulltext","_id":"4","_score":2.6018782,"_source":
{"content":"中国驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"}
,"highlight":{"content":["<tag1>中</tag1><tag1>国</tag1>驻洛杉矶领事馆遭亚裔男子枪击 嫌犯已自首"]}},{"_index":"index","_type":"fulltext","_id":"3","_score":0.970927,"_source":
{"content":"中韩渔警冲突调查:韩警平均每天扣1艘中国渔船"}
,"highlight":{"content":["<tag1>中</tag1>韩渔警冲突调查:韩警平均每天扣1艘<tag1>中</tag1><tag1>国</tag1>渔船"]}},{"_index":"index","_type":"fulltext","_id":"1","_score":0.2876821,"_source":
{"content":"美国留给伊拉克的是个烂摊子吗"}
,"highlight":{"content":["美<tag1>国</tag1>留给伊拉克的是个烂摊子吗"]}}]}}
{"took":65,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":2,"max_score":3.4586763,"hits":[{"_index":"index","_type":"fulltext","_id":"6","_score":3.4586763,"_source":
{"content":"青云的12字决:从初创企业到云生态的蜕变"}
,"highlight":{"content":["<tag1>青</tag1><tag1>云</tag1>的12字决:从初创企业到<tag1>云</tag1>生态的蜕变"]}},{"_index":"index","_type":"fulltext","_id":"5","_score":0.28962442,"_source":
{"content":"北京优帆科技有限公司于2012年4月正式成立,是全球首家实现资源秒级响应并按秒计量的基础云服务商"}
,"highlight":{"content":["北京优帆科技有限公司于2012年4月正式成立,是全球首家实现资源秒级响应并按秒计量的基础<tag1>云</tag1>服务商"]}}]}}
{"took":8,"timed_out":false,"_shards":{"total":5,"successful":5,"skipped":0,"failed":0},"hits":{"total":1,"max_score":1.4481221,"hits":[{"_index":"index","_type":"fulltext","_id":"5","_score":1.4481221,"_source":
{"content":"北京优帆科技有限公司于2012年4月正式成立,是全球首家实现资源秒级响应并按秒计量的基础云服务商"}
,"highlight":{"content":["北京<tag1>优</tag1><tag1>帆</tag1><tag1>科</tag1><tag1>技</tag1>有限公司于2012年4月正式成立,是全球首家实现资源秒级响应并按秒计量的基础云服务商"]}}]}}
其中"中国"未被当做单一词组,烦请指点。
你好,我在ES6.1.1中集成IK,测试时发现配置文件中不配置任何分词词典可以对“中国”进行正常的分词。
配置如下:
配置自定义词典后,无法将“中国”作为单一词组,自定义词典中有“中国”一词。
是否有人遇到此类问题,麻烦予以解答。