ES设置字段搜索权重——Query-Time Boosting

Query-Time Boosting

In Prioritizing Clauses, we explained how you could use the boost parameter at search time to give one query clause more importance than another. For instance:

GET /_search
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "title": {
              "query": "quick brown fox",
              "boost": 2 
            }
          }
        },
        {
          "match": { 
            "content": "quick brown fox"
          }
        }
      ]
    }
  }
}


The title query clause is twice as important as the content query clause, because it has been boosted by a factor of 2.



A query clause without a boost value has a neutral boost of 1.

转自:https://www.elastic.co/guide/en/elasticsearch/guide/current/query-time-boosting.html

时间: 2024-12-10 19:44:37

ES设置字段搜索权重——Query-Time Boosting的相关文章

[Elasticsearch] 多字段搜索 (六) - 自定义_all字段,跨域查询及精确值字段

自定义_all字段 在元数据:_all字段中,我们解释了特殊的_all字段会将其它所有字段中的值作为一个大字符串进行索引.尽管将所有字段的值作为一个字段进行索引并不是非常灵活.如果有一个自定义的_all字段用来索引人名,另外一个自定义的_all字段用来索引地址就更好了. ES通过字段映射中的copy_to参数向我们提供了这一功能: PUT /my_index { "mappings": { "person": { "properties": {

[Elasticsearch] 多字段搜索 (一) - 多个及单个查询字符串

多字段搜索(Multifield Search) 本文翻译自官方指南的Multifield Search一章. 查询很少是只拥有一个match查询子句的查询.我们经常需要对一个或者多个字段使用相同或者不同的查询字符串进行搜索,这意味着我们需要将多个查询子句和它们得到的相关度分值以一种有意义的方式进行合并. 也许我们正在寻找一本名为战争与和平的书,它的作者是Leo Tolstoy.也许我们正在使用"最少应该匹配(Minimum Should Match)"来搜索ES中的文档.另外我们也可

[Elasticsearch] 多字段搜索 (一) - 多个及单个查询字符串 <译>

多字段搜索(Multifield Search) 本文翻译自官方指南的Multifield Search一章. 查询很少是只拥有一个match查询子句的查询.我们经常需要对一个或者多个字段使用相同或者不同的查询字符串进行搜索,这意味着我们需要将多个查询子句和它们得到的相关度分值以一种有意义的方式进行合并. 也许我们正在寻找一本名为战争与和平的书,它的作者是Leo Tolstoy.也许我们正在使用"最少应该匹配(Minimum Should Match)"来搜索ES中的文档.另外我们也可

Elasticsearch系列---多字段搜索

概要 本篇介绍一下multi_match的best_fields.most_fields和cross_fields三种语法的场景和简单示例. 最佳字段 bool查询采取"more-matches-is-better"匹配越多分越高的方式,所以每条match语句的评分结果会被加在一起,从而为每个文档提供最终的分数_score.能与两条语句同时匹配的文档会比只与一条语句匹配的文档得分要高,但有时这样也会带来一些与期望不符合的情况,我们举个例子: 我们以英文儿歌为案例背景,我们这样搜索: G

[Elasticsearch] 多字段搜索 (五) - 以字段为中心的查询

以字段为中心的查询(Field-centric Queries) 上述提到的三个问题都来源于most_fields是以字段为中心(Field-centric),而不是以词条为中心(Term-centric):它会查询最多匹配的字段(Most matching fields),而我们真正感兴趣的最匹配的词条(Most matching terms). NOTE best_fields同样是以字段为中心的,因此它也存在相似的问题. 首先我们来看看为什么存在这些问题,以及如何解决它们. 问题1:在多个

[Elasticsearch] 多字段搜索 (三) - multi_match查询和多数字段

multi_match查询 multi_match查询提供了一个简便的方法用来对多个字段执行相同的查询. NOTE 存在几种类型的multi_match查询,其中的3种正好和在"了解你的数据"一节中提到的几种类型相同:best_fields,most_fields以及cross_fields. 默认情况下,该查询以best_fields类型执行,它会为每个字段生成一个match查询,然后将这些查询包含在一个dis_max查询中.下面的dis_max查询: { "dis_max

Elasticsearch 全字段搜索_all,query_string查询,不进行分词

最近在使用ELasitcsearch的时候,需要用到关键字搜索,因为是全字段搜索,就需要使用_all字段的query_string进行搜索. 但是在使用的时候,遇到问题了.我们的业务并不需要分词,我在各个字段也设置了,not_analyzed.但是在使用query_string对_all字段进行查询的时候, 发现结果还是分词的.最后在官网找到这么一段话: Remember that the _all field is just an analyzed string field. It uses

Dynamic CRM 2013学习笔记(二十八)用JS动态设置字段的change事件、必填以及可见

我们知道通过界面设置字段的change事件,是否是必填,是否可见非常容易.但有时我们需要动态地根据某些条件来设置,这时有需要通过js来动态地控制了. 下面分别介绍如何用js来动态设置.   一.动态设置字段的change事件 // form on load event function onLoad() { init();   pageAttr.delivery_from.addOnChange(deliveryFromChange); pageAttr.type.addOnChange(typ

BPM实例分享:动态设置字段必填

一些业务场景中,需要动态设置字段的必填. 比如QA场景中,选择不合格的时候,必须要填写原因,合格时不需要. 设置必填后,提交时会进行验证. //设置字段的必填样式 function setRequired(field, flag, row) { var ele = $.MvcSheetUI.GetElement(field, row) var ui = ele.SheetUIManager(); if (ele != null) { ui.Required = flag; if (flag) {