繁体   English   中英

弹性搜索中的自定义高光

[英]Custom highlights in elastic search

我是弹性搜索的新手。 我有一个任务,我必须突出显示具有特定标签的某些查询。

我正在使用弹性搜索间隔中提到的类似查询。 现在的问题是我必须用html标签突出“我最喜欢的食物”,说“最喜欢的”和带有不同html标签的冷粥/热水,说“状态”。

我怎么能这样做

POST _search
{
  "query": {
    "intervals" : {
      "my_text" : {
        "all_of" : {
          "ordered" : true,
          "intervals" : [
            {
              "match" : {
                "query" : "my favourite food",
                "max_gaps" : 0,
                "ordered" : true
              }
            },
            {
              "any_of" : {
                "intervals" : [
                  { "match" : { "query" : "hot water" } },
                  { "match" : { "query" : "cold porridge" } }
                ]
              }
            }
          ]
        },
        "boost" : 2.0,
        "_name" : "favourite_food"
      }
    }
  }
}

您可以使用Elasticsearch中的突出显示功能,如下所示:

GET /index_name/_search
{
  "query": {},
  "highlight": {
    "fields": {
      "content": {
        "type": "unified",
        "number_of_fragments": 0,
        "pre_tags": [
          "<first_filter>",
          "<second_filter>",
          "<third filter>"
        ],
        "post_tags": [
          "<first_filter>",
          "<second_filter>",
          "<third filter>"
        ]
      }
    }
  }
}

应用标记的顺序取决于应用过滤器的顺序。 另请注意,应用number_of_fragments:0返回带有标记匹配的整个内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM