• Elasticsearch 认证模拟题 - 22


    一、题目

    索引 task 索引中文档的 fielda 字段内容包括了 hello & world,索引后,要求使用 match_phrase query 查询 hello & world 或者 hello and world 都能匹配该文档

    1.1 考点
    1. 分词器
    1.2 答案
    # 创建符合条件的 task 索引,设置 field 字段,并写入数据
    PUT task
    {
    "settings": {
        "analysis": {
          "analyzer": {
            "my_analyzer": {
              "tokenizer": "standard",
              "char_filter": [
                "my_mappings_char_filter"
              ]
            }
          },
          "char_filter": {
            "my_mappings_char_filter": {
              "type": "mapping",
              "mappings": [
                "& => and"
              ]
            }
          }
        }
      },
      "mappings": {
        "properties": {
          "fielda":{
            "type": "text",
            "analyzer": "my_analyzer"
          }
        }
      }
    }
    
    # 写入数据
    POST task/_bulk
    {"index":{}}
    {"fielda":"hello & world"}
    {"index":{}}
    {"fielda":"hello and world"}
    
    # 验证结果
    GET task/_search
    {
      "query": {
        "match_phrase": {
          "fielda": "hello & world"
        }
      }
    }
    

    二、题目

    有一个索引 task3,其中有 fieldafieldbfieldcfielde 现要求对 task3 重建索引,重建后的索引新增一个字段 fieldg 其值是fieldafieldbfieldcfielde 的值拼接而成。

    # 创建符合条件的 task3 索引,设置 field 字段,并写入数据
    PUT task3
    {
      "mappings": {
        "properties": {
          "fielda":{
            "type": "keyword"
          },
          "fieldb":{
            "type": "keyword"
          },
          "fieldc":{
            "type": "keyword"
          },
          "fielde":{
            "type": "keyword"
          }
        }
      }
    }
    
    POST task3/_bulk
    {"index":{}}
    {"fielda":"aa","fieldb":"bb","fieldc":"cc","fielde":"dd"}
    {"index":{}}
    {"fielda":"中华","fieldb":"人民","fieldc":"共和国","fielde":"万岁"}
    
    2.1 考点
    1. 重建索引
    2. 管道
    2.2 答案
    # 预览脚本结果
    POST _ingest/pipeline/_simulate
    {
      "pipeline": {
        "processors": [
          {
            "script": {
              "lang": "painless",
              "source": """
                ctx['fieldg'] = ctx['fielda'] + ' ' + ctx['fieldb'] + ' '+ctx['fieldc'] + ' ' + ctx['fielde'];
              """
            }
          }
        ]
      },
      "docs": [
        {
          "_source": {
            "fielda":"中华","fieldb":"人民","fieldc":"共和国","fielde":"万岁"
          }
        }
      ]
    }
    
    # 定义脚本
    PUT _ingest/pipeline/my_pipeline
    {
      "processors": [
        {
          "script": {
            "lang": "painless",
            "source": """
                ctx['fieldg'] = ctx['fielda'] + ' ' + ctx['fieldb'] + ' '+ctx['fieldc'] + ' ' + ctx['fielde'];
              """
          }
        }
      ]
    }
    
    # 重建索引
    POST _reindex
    {
      "source": {
        "index": "task3"
      },
      "dest": {
        "index": "task3_new",
        "pipeline": "my_pipeline"
      }
    }
    
    # 搜索结果
    GET task3_new/_search
    

    在这里插入图片描述

  • 相关阅读:
    面向对象基础案例(2)
    Matlab--高等应用数学问题的MATLAB求解
    flink的几种常见的执行模式
    pip 指定源(换源)
    mysql 创建视图提示View‘s SELECT contains a subquery in the FROM clause
    芯片安全(security)
    第十一届中国创新创业大赛浙江赛区暨第九届浙江省“火炬杯”创新创业大赛-新一代信息技术行业总决赛
    4.mysql-进阶
    【无公网IP】在公网环境下Windows远程桌面Ubuntu 18.04
    用户层与驱动层通信
  • 原文地址:https://blog.csdn.net/Wolf_xujie/article/details/139703922