在 Mapping 里面,将 dynamic 参数设置成 strict 可以拒绝索引包含未知字段的文档。 此条 Tips 由 medcl 贡献。

es无法高亮搜索的关键词,模糊匹配,却高亮了整个搜索结果

Elasticsearch | 作者 dreamES | 发布于2020年08月13日 | 阅读数:395

版本是7.6.0, ik分词器
如查询:
GET /goods/_search
{
"query":{
"match":{
"modelName":"ab"
}
},
"highlight": {
"fields": {
"modelName":{}
}
}
}

返回的结果:
 
"highlight" : {
"modelName" : [
"<em>ABM7-8.000MHZ-D2Y-T</em>"
]
}

期望返回的结果是:
"highlight" : { 
"modelName" : [
"<em>AB</em>M7-8.000MHZ-D2Y-T" ]
}

modelName 的mapping是 ik_smart,即使把mapping换成ik_max_word结果也是一样的, 高亮类型为es默认的Plain Highlighter; 高亮了整个结果,搜索中文也有问题,
比如搜索“电器", 结果是 "电容器是分类", 他会把电容器这三个字高亮,而不是单独高亮电跟器,求大佬帮帮忙,是查询语句有问题,还是要mapping设置有问题,我看别人的高亮是高亮他搜索的关键字,不会跟我一样高亮整个结果!
已邀请:

kongkongyzt

赞同来自:

我遇到了和你一样的问题

要回复问题请先登录注册