• 一个Elasticsearch嵌套nested查询的实例


    创建索引和数据准备

    PUT course
    PUT course/_mapping/course
    {
    
          "properties": {
            "course":{
              "type": "nested"
              , "properties": {
                    "key1": {
                      "type": "text",
                      "analyzer": "ik_max_word"
                      },
                    "key2": {
                      "type": "text",
                      "analyzer": "ik_max_word"
                    },
                    "course_score": {
                    "type": "long"
                    }
              }
            },
              "course_name": {
                "type": "text"
                , "analyzer": "ik_max_word"
              },
              "course_id": {
                "type": "long"
              }
          }
    }
    PUT course/course/1
    {
      "course":[
        {
         "key1":"语文,高一,高二,高三",
         "key2":"高考作文",
         "course_score":15
        },
        {
          "key1":",语文,高二",
          "key2":"语文高考",
          "course_score":9
        },
        {
          "key1":",努力,学习",
          "key2":"高考",
          "course_score":9
        }
      ],
      "course_name":"语文高考基础题满分策略",
      "course_id":13
    }
    
    PUT course/course/2
    {
      "course":[
        {
        "key1":",其他,高一,高二,高三",
        "key2":"鲁林希",
        "course_score":21
        },
        {
        "key1":",其他,高一",
        "key2":"高考",
        "course_score":11
        },
        {
        "key1":",其他,高二,高三",
        "key2":"高考",
        "course_score":2
        }
      ],
      "course_name":"师兄师姐来帮忙-方法篇",
      "course_id":220
    }
    
    PUT course/course/3
    {
      "course":[
        {
        "key1":",其他,高一,高三",
        "key2":"高考",
        "course_score":21
        }
      ],
      "course_name":"师兄师姐来帮忙-自招全流程",
      "course_id":221
    }

    查询语句实例

    GET course/course/_search
    {
      
      "query": {
        "function_score": {
          "query": {
            "bool": {
              "must": [
                {
                  "nested": {
                    "path": "course",
                    "score_mode": "sum", 
                    "query": {
                      "function_score": {
                        "query": {
                          "bool": {
                            "must": [
                              {
                                "match": {
                                  "course.key1": "高一,高二,高三"
                                }
                              },
                              {
                                "match": {
                                  "course.key2": "高考"
                                }
                              }
                            ]
                          }
                        },
                        "script_score": {
                          "script": "doc['course.course_score'].value"
                        }
                      }
                    }
                  }
                }
              ]
            }
          }
          , "script_score": {
            "script": "_score"
          }
        }
      }
    }
  • 相关阅读:
    Method总结
    使用CSS的五种方式
    debug js code
    Overload
    fiddler模拟弱网测试
    POJ 1753 Flip Game (IDA*)
    UVA 11400 Lighting System Design(照明系统设计)(dp)
    UVA 12563 Jin Ge Jin Qu hao(劲歌金曲)(01背包+滚动数组)
    UVA 116 Unidirectional TSP (单向TSP)(dp多段图的最短路)
    UVA 1151 Buy or Build (买还是建)(并查集+二进制枚举子集)
  • 原文地址:https://www.cnblogs.com/smile361/p/7771209.html
Copyright © 2020-2023  润新知