设为首页 加入收藏

TOP

Elasticsearch搜索详解之高亮命中关键字
2018-10-23 18:08:40 】 浏览:40
Tags:Elasticsearch 搜索 详解 高亮 命中 关键字

通常显示在网页上时,用不同颜色标记出搜索命中的是哪些关键字是很有用的,这就要用到highlight 参数。

举个例子,

GET /_search
{
    "query" : {
        "match": { "title": "投资", "summary": "投资" }
    },
    "highlight" : {
        "fields" : {
            "title" : {},
            "summary" : {}
        }
    }
}

返回的结果里面每个 hit 多了一个类似这样部分:

"highlight" : {
          "summary" : [
            "它利用非金融性资产能源源不断地在证券市场上融资,采取发行新股和引入风险投资相结合收购恒昌企业,结果各方均取得了满意的结果。",
            "其融资的方式主要有发行新股、可换股债券、引入风险投资等。而这些巨额的融资行动是和投资银行紧密充分的合作分不开的。从中得出一些对我国上市公司并购融资有益的启示,可作为并购融资实践的参考。"
          ],
          "title" : [
            "中信泰富的并购融资"
          ]
        }

看例子很容易理解,但必须满足一个条件,highlight 里的字段必须是 query 里有的字段,而且query 的字段不能是 _all。highlight 也有3中,分别介绍。

定制highlight

下面的参数可以改变返回的结果。即可以为单独的字段设置不同的参数,也可以作为 highlight 的属性统一定义。

number_of_fragments
fragment是指一段连续的文字。返回结果最多可以包含几段不连续的文字。默认是5。

fragment_size
一段fragment 包含多少个字符。默认100。

pre_tags
标记 highlight 的开始标签。例如上面的。

post_tags
标记 highlight 的结束标签。例如上面的。

encoder
说明字段是否为 html 格式,default:不是,html: 是。

no_match_size
即使字段中没有关键字命中,也可以返回一段文字,该参数表示从开始多少个字符被返回。

还有更多的参数请参考官方文档。


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇sql:COALESCE()函数解析 下一篇Timesten复制器端口问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }