不要急,总有办法的

7.5.0 “中电万维集团” 分成“万”和“维” “万维” 分成“万维”导致查询不出来“中电万维集团的数据”

Elasticsearch | 作者 fengly | 发布于2020年01月06日 | 阅读数:2166

以下是payload

POST test/_analyze
{
"analyzer": "my_hanlp_analyzer",
"text": "中电万维集团"
}

POST test/_analyze
{
"analyzer": "my_hanlp_analyzer",
"text": "万维"
}

PUT test
{
"settings": {
"analysis": {
"analyzer": {
"my_hanlp_analyzer": {
"tokenizer": "my_hanlp"
}
},
"tokenizer": {
"my_hanlp": {
"type": "hanlp"
}
}
}
},
"mappings" : {
"properties" : {
"title" : {
"type" : "text",
"analyzer": "my_hanlp_analyzer",
"search_analyzer":"my_hanlp_analyzer"
}
}
}

}
已邀请:

fengly

赞同来自:

hanlp是7.5.0 的,首先我es中存储了“中电万维集团的数据”,我使用的是hanlp_index分词器,其他的hanlp分析器我也都试过了,真对“中电万维集团”这个词,都被分成了“中电”,"万","维","集团"。而我用万维去搜索的时候,该分词器被分成了 "万维",导致搜索不出来数据。这些都是基于我本地的程序和kibana进行测试的。我去hanlp官网,针对”中电万维集团“,分出来的效果是”中电“,”万维“,”集团“。有没有大神,了解这种情况的,不胜感激!!

stephen_qu - 多学,多动手,少说废话

赞同来自:

如果用term查询呢,你的query就不会被分词,就是万维,应该可以查到你的目标文档

God_lockin

赞同来自:

可以考虑给hanlp加customdictionary,直接add进去你的中电万维集团,然后重新进数据做索引

要回复问题请先登录注册