当前位置: 首页 > 知识库问答 >
问题:

elasticsearch中的ConstantScoreQuery

南宫凡
2023-03-14

我不确定ConstantScoreQuery在Elasticsearch 1.4中的性能如何(我认为1.0和2.0之间在这方面没有太大变化)

一个简单的查询必须计算分数,所以如果您执行这样的查询:

{ 
  "constant_score":
    "match": {"field":"text"}
}

这显然比没有constant_score快。

现在,如果您正在执行一个boolQuery,那么用constant_score包装boolQuery还是包装每个must/should/must_not子句有什么区别吗?举例说明:

{
 "constant_score": {
  "bool":{
    "must": [
        {"match": {"field1": "text1"}},
        {"match": {"field2": "text2"}}
    ]
  }
 }
}

范瑟丝

{
  "bool":{
    "must": [
        {"constant_score": {"match": {"field1": "text1"}}},
        {"constant_score": {"match": {"field2": "text2"}}}
    ]
  }
}

另一个例子是,当您使用2个“should”用例进行布尔筛选时,默认情况下“minimum_should_match”被设置为1,如果第一个测试的用例是OK的,则不需要检查另一个。

对于查询,得分很重要,所以每个“应该”都会被测试,并加起来就是命中的得分。constant_score包装一个bool查询,有没有一种方法可以使它成为一个简单的“or”bool,就像上面的过滤器一样?我的意思是不检查每个文档上的每个“should”

感谢您的见解:)

共有1个答案

景宏朗
2023-03-14

我刚刚在本地elasticsearch(1.4.4)上测试了这一点

事实证明,如果用shoulds将constant_score包裹在bool查询周围,它的行为不像boolFilter,而是返回每个文档。所以最小值应该匹配是强制性的。

关于在bool查询或每个部分上使用constant_score,返回的结果是相同的,每个结果都有相同的分数,但我仍然不知道它是否是以前计算过的,然后设置为常数...

 类似资料:
  • 问题内容: 我已经使用cmd删除了映射 在我的conf中,我已将索引定义如下, 并尝试创建一个新的映射,但是我得到了错误 {“错误”:{“ root_cause”:[{“类型”:“ index_not_found_exception”,“原因”:“无此类索引”,“ resource.type”:“ index_or_alias”,“ resource.id”:“ logstash_log ” ,“

  • 问题内容: 我想将Elasticsearch集成到我的laravel项目中。 我已经使用以下行安装: 在终端上运行命令: 然后,我在 app / config /中创建了elasticsearch.php 并添加了以下代码。 我的第一个问题: 我应该写些什么代替主机名 现在,我的项目正在本地服务器上以localhost:8000运行。 我在 app / config / app.php中添加 了启

  • 问题内容: 我正在使用shift31 / laravel-elasticsearch:〜1.0。我想在我的列表页面上实现分页。 搜索代码: 如何在上面的查询中使用分页? 更新: 我在查询中使用from和size,但是如何在视图页面中提供分页链接?以及如何通过单击页面进行更新? 问题答案: 在仓库中 我在控制器中设置了$ per_page和$ from 现在在视图{{!! $ admin_excep

  • 问题内容: 我在理解带轮胎宝石的elasticsearch中分析仪的概念时遇到了麻烦。我实际上是这些搜索概念的新手。这里有人可以帮我提供一些参考文章还是解释一下分析仪的实际作用以及为什么要使用它们? 我看到在Elasticsearch中提到了不同的分析器,例如关键字,标准,简单,滚雪球。没有分析仪的知识,我无法确定真正适合我的需求。 问题答案: 我给你一个简短的答案。 在索引时间和搜索时间使用分析

  • 你好,我想在Elasticsearch中升级log4j,当前版本显示在下面使用定位命令,所以我必须替换哪些文件,也必须在替换文件后执行某些操作 root@la-prod7-client1:/#找到log4j /etc/elasticsearch/log4j2。性质 /usr/share/elasticsearch/lib/log4j-api-2.11.1.jar /usr/share/elasti

  • 我正在尝试更新elasticsearch中的一个对象,但出现了下一条错误消息: Elasticsearch异常[type=mapper\u parsing\u exception,[errorMessages]的reason=object mapping试图将字段[errorMessages]解析为object,但找到了一个具体值] 我想更新的信息是: 我使用的其余客户端连接器和对象UpdateR