美文网首页
ES 查询上下文

ES 查询上下文

作者: handsomemao666 | 来源:发表于2020-09-28 21:23 被阅读0次

    相关性分数

    默认情况下,ES根据相关性分数对结果进行排序。
    相关性分数是一个浮点型数字,通过元数据字段_score返回,分数越高,代表文档的相关性越大。分数计算依赖于这个查询是在查询上下文中(query context)还是在过滤上下文中(filter context)。

    查询上下文(query context)

    在查询上下文中,一个查询语句表示一个文档和查询语句的匹配程度。无论文档匹配与否,查询语句总能计算出一个相关性分数在_score字段上。

    过滤上下文(filter context)

    在过滤上下文中,一个查询语句表示一个文档是否匹配该查询语句。结果为是或者不是,无需计算分数。过滤上下文最经常被使用在结构化数据中,例如:

    • timestamp 是否在 2015 到2016的区间呢?
    • status 字段是否为 ``"published"

    ES会字段缓存高频使用的过滤查询,从而提升性能。
    过滤上下文出现在filter参数中,比如 在bool查询中的filter或者must_not参数,参数可以使用constant_score表示分数

    GET /_search { "query": { "bool": { "must": [ { "match": { "title": "Search" }}, { "match": { "content": "Elasticsearch" }} ], "filter": [ { "term": { "status": "published" }}, { "range": { "publish_date": { "gte": "2015-01-01" }}} ] } } }

    query参数代表查询上下文
    bool 和两个 match 用在查询上下文
    filter参数用在过滤上下文

    相关文章

      网友评论

          本文标题:ES 查询上下文

          本文链接:https://www.haomeiwen.com/subject/hejruktx.html