使用 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 高亮器类型设计用于 annotated_text 字段。

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

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

注释高亮器会尽量尊重原文中任何现有的标记。

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