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

特殊情况下Highlight不成功

Elasticsearch | 作者 youmufreedom | 发布于2017年07月31日 | 阅读数:2675

用term level的query,去搜索一个analyze之后tokens数量大于50的句子,可以得到正确结果,但是如果这个搜索的关键词是出现在token的第50个以后,highlight就无法工作.只能返回原句子,没有被正确的highlight.求大神帮忙解释或者解答一下.
已邀请:

youmufreedom

赞同来自:

 
filter 用的是shingle分词,会出现这个情况
 PUT my_index
{
  "settings": {
    "analysis": {
      "filter": {
        "my_shingle_filter": {
          "type": "shingle",
          "min_shingle_size": 2,
          "max_shingle_size": 30
        }
      },
      "analyzer": {
        "my_analyzer": {
          "filter":[
              "lowercase"
            ],
          "tokenizer": "standard"
        }
      }
    }
  }, 
  "mappings": {
    "keyword": {
      "properties": {
        "body": {
          "type": "text",
          "analyzer": "my_analyzer"
        }
      }
    }
  }
}

要回复问题请先登录注册