高峰只对攀登它而不是仰望它的人来说才有真正意义。

短语高亮问题

Elasticsearch | 作者 kepmoving | 发布于2017年04月06日 | 阅读数:4342

es在使用高亮的时候,查询的语句用的是match_phrase,然后contents里面顺序和查询词不同的字段高亮不出来?
 
查询的是会议微搜
第一条文档  "contents": "申请非标功能模块 3.2 mobile、微搜、知识地图、会议、微博、日程、协作、客户管理功能"
第二条文档 "contents": "申请非标功能模块 3.2 mobile、会议、知识地图、微搜、微博、日程、协作、客户管理功能"
第二条返回的结果有高亮片段
  "highlight": {
          "contents": [
            "申请非标功能模块 3.2 mobile、<b>会议</b>、知识地图、<b>微搜</b>、微博、日程、协作、客户管理功能"
          ]
        },
 
但是第一条结果没有高亮的返回结果?
有大神指导一下吗?
已邀请:

kennywu76 - Wood

赞同来自:

content字段用的什么分词器,mapping定义是怎样的?  match_phrase语句和highlighting语句怎么写的?
 
我本机用IK分词器测试了一下,复现不了你提到的问题。
POST /index/fulltext/_mapping
{
"fulltext": {
"_all": {
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"term_vector": "no",
"store": "false"
},
"properties": {
"content": {
"type": "text",
"analyzer": "ik_smart",
"search_analyzer": "ik_smart",
"include_in_all": "true",
"boost": 8
}
}
}
}


POST /index/_search
{
"query": {
"match_phrase": {
"content": {
"query": "会议微搜",
"slop": 5
}
}
},
"highlight": {
"fields": {
"content": {}
}
}
}


{
"took": 3,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"failed": 0
},
"hits": {
"total": 2,
"max_score": 0.23056182,
"hits": [
{
"_index": "index",
"_type": "fulltext",
"_id": "1",
"_score": 0.23056182,
"_source": {
"content": "申请非标功能模块 3.2 mobile、微搜、知识地图、会议、微博、日程、协作、客户管理功能"
},
"highlight": {
"content": [
"申请非标功能模块 3.2 mobile、<em>微</em><em>搜</em>、知识地图、<em>会议</em>、<em>微</em>博、日程、协作、客户管理功能"
]
}
},
{
"_index": "index",
"_type": "fulltext",
"_id": "2",
"_score": 0.23056182,
"_source": {
"content": "申请非标功能模块 3.2 mobile、会议、知识地图、微搜、微博、日程、协作、客户管理功能"
},
"highlight": {
"content": [
"申请非标功能模块 3.2 mobile、<em>会议</em>、知识地图、<em>微</em><em>搜</em>、微博、日程、协作、客户管理功能"
]
}
}
]
}
}

 

要回复问题请先登录注册