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

在“应该”中结合“术语”和“匹配”

凌嘉勋
2023-03-14

我希望搜索具有类似于查询字符串的< code>firstField(映射为文本)或等于1的< code>secondField(映射为整数)的项目。

阅读文档后,我明白我应该使用bool应该(如下所示):

{
  "query": {
    "bool": {
      "should": [
        {"match": {"firstField":  "queryString"}},
        {"term":  {"secondField": 1}}
      ]
    }
  }
}

然而,结果表明,secondField对结果的贡献远远低于firstField,因为它们的评分算法产生不同的量表。

我正在考虑人为地booping(虽然我猜这只在某些情况下有效)或规范化firstField以某种方式表示百分比而不是任意分数。

有没有适当的方法来赋予每个字段相同的权重?

注意:我使用的是< code>ES 7.x

共有1个答案

仇正平
2023-03-14

看起来你不想得分。在这种情况下,使用过滤上下文。

{
  "query": {
    "bool": {
      "filter": [
        {
          "bool": {
            "should": [
              {
                "match": {
                  "firstField": "queryString"
                }
              },
              {
                "term": {
                  "secondField": 1
                }
              }
            ]
          }
        }
      ]
    }
  }
}
 类似资料:
  • 问题内容: 找出查询中哪些术语与以lucene命中形式返回的给定文档相匹配的最佳方法是什么? 我尝试了一种奇怪的方法,其中涉及在Lucene Contrib中命中高亮显示包,还有一种方法针对最上面的文档(“ docId:xy AND description:each_word_in_query”)在查询中搜索每个单词。 没有得到满意的结果?点击突出显示不会报告与第一个文档不同的某些单词。我不确定第

  • 问题内容: 我有两种日志消息: 第一个消息是已发送消息的类型,第二个消息是确认消息已传递的消息。 它们之间的区别是后缀,我已将其与“ id”分开并可以对其进行查询。 这些消息将按以下格式解析并存储在elasticsearch中: 我想找出哪些消息已成功发送,哪些没有成功。我是Elasticsearch的初学者,所以我真的很努力。 我目前正在尝试术语聚合,但是我所能实现的就是以下代码: 向我显示已发

  • 抱歉,如果已经问过了,但一直潜伏在SO周围,找不到任何适合我需要的东西。 基本上,我在使用ES的第一次快速尝试中试图实现的是在术语聚合中添加更多计数器。 快速尝试一下,我将以下请求发送给ES。 我现在得到的只是样本在文档中显示的内容。 但是,我真的不知道如何在桶中包含更多的内部聚合。会导致这样的文档的东西。 我应该如何构造聚合,以便按桶包含这些聚合?

  • 我发现自己经常编写代码,例如 加速一个缓慢的矢量化“纯”函数,其中每个输入项理论上可以单独计算,并且输入预计包含许多重复项。 现在我想知道这是否是实现这种加速的最佳方式,或者是否有一些函数(最好是在基本R或tidyverse中)同时执行诸如和之类的操作? 谢谢你提供的答案。我编写了一个小型基准测试套件来比较这些方法: 目前,基于rcpp的方法在我的机器上的所有测试设置中都是最好的,但几乎没有超过独

  • 对于嵌套查询术语筛选器https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html和布尔术语筛选器https://www.elastic.co/guide/en/elasticsearch/reference/5.5/query-dsl-bool-query.html有文档 嵌

  • 为了开始使用elasticsearch和kibana,我尝试了教程。但现在我得到了一个我自己无法解决的错误。 它对这个非常有趣:elasticsearch bool查询组合必须与或 亲切地问候格雷格