Elasticsearch 认证模拟题 - 10

一、题目

在索引 task8 中,写出满足以下条件的查询

  1. title 中包含 my"或 me
  2. 如果 tags 中包含 romatic movies,该条算分提高,如果不包含则算分不变。
PUT task8
{
  "mappings": {
    "properties": {
      "title":{
        "type":"text"
      },
      "tags":{
        "type": "keyword"
      }
    }
  }
}

POST task8/_bulk
{"index": {}}
{"title":"my", "tags":["romatic movies"]}
{"index": {}}
{"title":"me", "tags":["movies"]}

1.1 考点
  1. Boolean
  2. Function score
1.2 答案
GET task8/_search
{
  "query": {
    "function_score": {
      "query": {
        "bool": {
          "should": [
            {
              "match": {
                "title": "my"
              }
            },
            {
              "match": {
                "title": "me"
              }
            }
          ]
        }
      },
      "functions": [
        {
          "filter": {
            "term": {
              "tags": {
                "value": "romatic movies"
              }
            }
          },
          "weight": 2
        }
      ],
      "boost": "5",
      "boost_mode": "multiply"
    }
  }
}

二、题目

对索引 task9 编写一个查询模板,并满足以下要求:

  1. 使用 a_01 参数查询 a 字段
  2. 使用 start_dateend_date 参数范围查询 timestamp 字段
  3. 如果没有提供 end_date 参数,那么结束时间默认是现在
  4. 查询结果中 b 字段必须等于 active

使用 查询模板查询 2018年6月1日到现在的数据,a 字段包含关键字 aaa

# 创建索引
PUT task9
{
  "mappings": {
    "properties": {
      "a":{
        "type": "text"
      },
      "b":{
        "type": "keyword"
      },
      "timestamp":{
        "type": "date"
      }
    }
  }
}

# 写入数据
POST /task9/_bulk
{"index": {}}
{"a":"aaa AAA", "b":"active", "timestamp":"2021-11-11T11:21:21.000Z"}
{"index": {}}
{"a":"aaa AAA", "b":"active", "timestamp":"2022-11-11T11:21:21.000Z"}
{"index": {}}
{"a":"AAA", "b":"b", "timestamp":"2023-11-11T11:21:21.000Z"}

2.1 考点
  1. 查询模板
  2. 查询模板的默认参数
  3. Boolean
2.2 答案
# 创建模板
POST _scripts/my_search_template
{
  "script": {
    "lang": "mustache",
    "source": {
      "query": {
    "bool": {
      "must": [
        {
          "match": {
            "a": "{{a_01}}"
          }
        },
        {
          "range": {
            "timestamp": {
              "gte": "{{start_date}}",
              "lte": "{{end_date}}{{^end_date}}now{{/end_date}}"
            }
          }
        },
        {
          "term": {
            "b": {
              "value": "active"
            }
          }
        }
      ]
    }
  }
    }
  }
}

# 预览检索模板
GET _render/template/my_search_template
{
  "params": {
    "a_01": "aaa",
    "start_date": "2018-06-01T00:00:00.000Z"
  }
}

# 查询
GET task9/_search/template
{
  "id": "my_search_template", 
  "params": {
    "a_01": "aaa",
    "start_date": "2018-06-01T00:00:00.000Z"
  }
}

相关推荐

  1. Elasticsearch 认证模拟 - 10

    2024-06-08 12:20:02       11 阅读
  2. Elasticsearch 认证模拟 - 12

    2024-06-08 12:20:02       9 阅读
  3. Elasticsearch 认证模拟 - 6

    2024-06-08 12:20:02       8 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-08 12:20:02       17 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-08 12:20:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-08 12:20:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-08 12:20:02       18 阅读

热门阅读

  1. TCP和udp能使用同一个端口通讯吗

    2024-06-08 12:20:02       9 阅读
  2. 设计模式总结

    2024-06-08 12:20:02       6 阅读
  3. UVa1116/LA2429 Puzzle

    2024-06-08 12:20:02       5 阅读
  4. #07 使用Stable Diffusion生成高质量图片的技巧

    2024-06-08 12:20:02       8 阅读
  5. HTTP参数污染漏洞

    2024-06-08 12:20:02       8 阅读
  6. 速盾:图片cdn托管

    2024-06-08 12:20:02       9 阅读
  7. 挣值计算中的典型与非典型

    2024-06-08 12:20:02       8 阅读
  8. Objective-C中分类无法添加实例变量的底层原理

    2024-06-08 12:20:02       10 阅读
  9. android原生TabLayout之自定义指示器效果

    2024-06-08 12:20:02       10 阅读