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

constant_score和使用filter的bool查询之间是否存在性能差异?

昌博易
2023-03-14

说到“性能差异”,到目前为止,我还没有读到什么可靠的东西。

基于其官方文档,作为bool查询中使用的筛选器

子句(查询)必须出现在匹配的文档中。但是,与must不同的是,查询的分数将被忽略。筛选子句在筛选上下文中执行,这意味着计分被忽略,子句被考虑用于缓存。

至于常数分数查询

筛选查询不计算相关性得分。为了提高性能,Elasticsearch会自动缓存经常使用的筛选器查询。

QAs我刚刚读到:Elasticsearch:constant_score查询vs bool.filter查询

共有1个答案

郎灿
2023-03-14

不,没有性能差异,因为它们是一样的。

再次基于其关于过滤器上下文的offical doc讨论:

在筛选上下文中,query子句回答“此文档与此query子句匹配吗?”答案是简单的是或否-不计算分数。

 类似资料:
  • 问题内容: 如果我使用Javac打开调试信息的生成,则类文件将增加20-25%。这对运行Java程序有任何性能影响吗?如果是,则在哪些条件下以及在多少条件下。我希望对加载类有一点影响,因为文件较大,但这应该很小。 问题答案: 用任何语言,调试信息都是元信息。它的性质增加了目标文件的大小,从而增加了加载时间。在调试器外部执行期间,实际上完全忽略了此信息。如JVM规范中所述(尽管不清楚),调试信息存储

  • 问题内容: 以下两个循环之间的性能差异(如果有)是什么? 和 问题答案: 版本1.5中引入的for-each循环通过完全隐藏迭代器或index变量,消除了混乱和出错的机会。结果成语同样适用于集合和数组: 当你看到冒号(:)时,将其读为“ in”。因此,上面的循环读为“对于元素中的每个元素e”。请注意,即使对于数组,使用for-each循环也不会降低性能。实际上,在某些情况下,它可能只比普通的for

  • 还有 我可以使用多个过滤器在一个必须像下面的代码:

  • 使用AtomicLong.IncrementAndGet方法测试JDK7和JDK8的性能差异,测试数据表明JDK7的性能优于JDK8。为什么JDK7的性能比JDK8好?是什么导致JDK8中的性能差? 系统环境: CPU:Intel(R)至强(R)CPU E5620@2.40 GHz 2.40 GHz(双处理器) 内存:8.00 GB set jvm_opt=-xms1024m-xmx1024m-x

  • 问题内容: 我正在计算稀疏自动编码器的算法。我已经使用和在python中实现了它。代码几乎相同,但是性能却大不相同。matlab完成任务所需的时间为0.252454秒,而numpy为0.973672151566,几乎是原来的四倍。在最小化问题中,我将在以后多次调用此代码,因此这种差异会导致实现之间的延迟几分钟。这是正常行为吗?如何提高numpy的性能? numpy实现: Sparse.rho是调整

  • 是的,这是一个老话题,但我还是有些困惑。 在爪哇,人们说: LinkedList的插入速度比ArrayList快。这里插入是什么意思?如果这意味着向后移动一些元素,然后将元素放在中间的空点,那么ArrayList应该比LinkedList慢。如果插入只意味着添加(对象)操作,这怎么会慢呢?