使用 annotated 高亮器

编辑

annotated-text 插件包含一个自定义的高亮器,旨在以尊重原始标记的方式标记搜索命中

# Example documents
PUT my-index-000001/_doc/1
{
  "my_field": "The cat sat on the [mat](sku3578)"
}

GET my-index-000001/_search
{
  "query": {
    "query_string": {
        "query": "cats"
    }
  },
  "highlight": {
    "fields": {
      "my_field": {
        "type": "annotated", 
        "require_field_match": false
      }
    }
  }
}

annotated 高亮器类型设计用于带注释的文本字段

带注释的高亮器基于 unified 高亮器,并支持相同的设置,但不使用 pre_tagspost_tags 参数。带注释的高亮器不使用类似 HTML 的标记(例如 <em>cat</em>),而是使用与注释相同的类似 Markdown 的语法,并注入一个 key=value 注释,其中 _hit_term 是键,匹配的搜索词是值,例如:

The [cat](_hit_term=cat) sat on the [mat](sku3578)

带注释的高亮器尝试尊重原始文本中任何现有的标记

  • 如果搜索词与现有注释的位置完全匹配,则 _hit_term 键会合并到现有注释的 (...) 部分中使用的类似 URL 的语法中。
  • 但是,如果搜索词与现有注释的跨度重叠,则会破坏标记格式,因此会删除原始注释,而采用仅包含搜索命中信息的新注释。
  • 原始文本中任何不重叠的注释都会保留在高亮器选择中