ES常见版本操作索引示例

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文为您介绍ES常见版本操作索引的示例。

示例数据

为便于理解操作,本文为您提供示例数据,基于示例数据提供相关操作指引。

{
    "products": [
        {
            "productName": "理财产品A",
            "annual_rate": "3.2200%",
            "describe": "180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"
        },
        {
            "productName": "理财产品B",
            "annual_rate": "3.1100%",
            "describe": "90天定投产品,最低10000起投,每天收益到账消息推送"
        },
        {
            "productName": "理财产品C",
            "annual_rate": "3.3500%",
            "describe": "270天定投产品,最低40000起投,每天收益立即到账消息推送"
        },
        {
            "productName": "理财产品D",
            "annual_rate": "3.1200%",
            "describe": "90天定投产品,最低12000起投,每天收益到账消息推送"
        },
        {
            "productName": "理财产品E",
            "annual_rate": "3.0100%",
            "describe": "30天定投产品推荐,最低8000起投,每天收益会消息推送"
        },
        {
            "productName": "理财产品F",
            "annual_rate": "2.7500%",
            "describe": "热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"
        }
    ]
}

创建索引

创建一个名称为product_info的索引:

7.0及以上版本

PUT /product_info
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  },
  "mappings": {
      "properties": {
        "productName": {
          "type": "text",
          "analyzer": "ik_smart"
        },
        "annual_rate":{
          "type":"keyword"
        },
        "describe": {
          "type": "text",
          "analyzer": "ik_smart"
        }
    }
  }
}

7.0及以下版本

PUT /product_info
{
  "settings": {
    "number_of_shards": 5,
    "number_of_replicas": 1
  },
  "mappings": {
    "products": {
      "properties": {
        "productName": {
          "type": "text",
          "analyzer": "ik_smart"
        },
        "annual_rate":{
          "type":"keyword"
        },
        "describe": {
         "type": "text",
         "analyzer": "ik_smart"
        }
      }
    }
  }
}
重要

官方Elasticsearch 7.0及以上版本将移除映射中的type类型定义,之前版本会继续支持。如果在7.0及以上版本中使用了type,会出现"type": "mapper_parsing_exception"的错误提示。详细信息及解决方案,请参见Removal of mapping types

创建成功后,返回结果如下。

{
  "acknowledged" : true,
  "shards_acknowledged" : true,
  "index" : "product_info"
}

创建文档并插入数据

8.x版本

POST /product_info/_bulk
{"index":{}}
{"productName":"理财产品A","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"index":{}}
{"productName":"理财产品B","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品C","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"index":{}}
{"productName":"理财产品D","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品E","annual_rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"index":{}}
{"productName":"理财产品F","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}

7.x版本

POST /product_info/_doc/_bulk
{"index":{}}
{"productName":"理财产品A","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"index":{}}
{"productName":"理财产品B","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品C","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"index":{}}
{"productName":"理财产品D","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品E","annual_rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"index":{}}
{"productName":"理财产品F","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}
说明

7.10版本同时支持ES7ES8的插入数据语法。

7.0以下版本

POST /product_info/products/_bulk
{"index":{}}
{"productName":"理财产品A","annual_rate":"3.2200%","describe":"180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"}
{"index":{}}
{"productName":"理财产品B","annual_rate":"3.1100%","describe":"90天定投产品,最低10000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品C","annual_rate":"3.3500%","describe":"270天定投产品,最低40000起投,每天收益立即到账消息推送"}
{"index":{}}
{"productName":"理财产品D","annual_rate":"3.1200%","describe":"90天定投产品,最低12000起投,每天收益到账消息推送"}
{"index":{}}
{"productName":"理财产品E","annual_rate":"3.0100%","describe":"30天定投产品推荐,最低8000起投,每天收益会消息推送"}
{"index":{}}
{"productName":"理财产品F","annual_rate":"2.7500%","describe":"热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"}

返回结果中包含"errors" : false,说明数据插入成功。

搜索数据

8.x版本

  • 全文搜索

    GET /product_info/_search
    {
      "query": {
        "match": {
          "describe": "每天收益到账消息推送"
        }
      }
    }

    搜索成功返回如下:

    {
      "took": 15,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": {
          "value": 6,
          "relation": "eq"
        },
        "max_score": 2.41246,
        "hits": [
          {
            "_index": "product_info",
            "_id": "pgAGQZgB5J6iFDPOX2QN",
            "_score": 2.41246,
            "_source": {
              "productName": "理财产品B",
              "annual_rate": "3.1100%",
              "describe": "90天定投产品,最低10000起投,每天收益到账消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "pwAGQZgB5J6iFDPOX2QN",
            "_score": 2.343423,
            "_source": {
              "productName": "理财产品C",
              "annual_rate": "3.3500%",
              "describe": "270天定投产品,最低40000起投,每天收益立即到账消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "qAAGQZgB5J6iFDPOX2QN",
            "_score": 1.7260926,
            "_source": {
              "productName": "理财产品D",
              "annual_rate": "3.1200%",
              "describe": "90天定投产品,最低12000起投,每天收益到账消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "qQAGQZgB5J6iFDPOX2QN",
            "_score": 0.9649055,
            "_source": {
              "productName": "理财产品E",
              "annual_rate": "3.0100%",
              "describe": "30天定投产品推荐,最低8000起投,每天收益会消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "pQAGQZgB5J6iFDPOX2QN",
            "_score": 0.8630463,
            "_source": {
              "productName": "理财产品A",
              "annual_rate": "3.2200%",
              "describe": "180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "qgAGQZgB5J6iFDPOX2QN",
            "_score": 0.19178316,
            "_source": {
              "productName": "理财产品F",
              "annual_rate": "2.7500%",
              "describe": "热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"
            }
          }
        ]
      }
    }
  • 按查询条件搜索

    搜索年化率在3.0000%到3.1300%之间的产品。

    GET /product_info/_search
    {
      "query": {
        "range": {
          "annual_rate": {
            "gte": "3.0000%",
            "lte": "3.1300%"
          }
        }
      }
    }

    搜索成功返回如下:

    {
      "took": 14,
      "timed_out": false,
      "_shards": {
        "total": 5,
        "successful": 5,
        "skipped": 0,
        "failed": 0
      },
      "hits": {
        "total": {
          "value": 3,
          "relation": "eq"
        },
        "max_score": 1,
        "hits": [
          {
            "_index": "product_info",
            "_id": "qAAGQZgB5J6iFDPOX2QN",
            "_score": 1,
            "_source": {
              "productName": "理财产品D",
              "annual_rate": "3.1200%",
              "describe": "90天定投产品,最低12000起投,每天收益到账消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "pgAGQZgB5J6iFDPOX2QN",
            "_score": 1,
            "_source": {
              "productName": "理财产品B",
              "annual_rate": "3.1100%",
              "describe": "90天定投产品,最低10000起投,每天收益到账消息推送"
            }
          },
          {
            "_index": "product_info",
            "_id": "qQAGQZgB5J6iFDPOX2QN",
            "_score": 1,
            "_source": {
              "productName": "理财产品E",
              "annual_rate": "3.0100%",
              "describe": "30天定投产品推荐,最低8000起投,每天收益会消息推送"
            }
          }
        ]
      }
    }

更多搜索方式,请参见Query DSL

7.x版本

  • 全文搜索

    GET /product_info/_doc/_search
    {
      "query": {
        "match": {
          "describe": "每天收益到账消息推送"
        }
      }
    }

    搜索成功返回如下:

    {
      "took" : 19,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 3,
          "relation" : "eq"
        },
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "product_info",
            "_type" : "_doc",
            "_id" : "gC9RUJgBDC_Ir7OTV2QD",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品D",
              "annual_rate" : "3.1200%",
              "describe" : "90天定投产品,最低12000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "_doc",
            "_id" : "fi9RUJgBDC_Ir7OTV2QD",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品B",
              "annual_rate" : "3.1100%",
              "describe" : "90天定投产品,最低10000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "_doc",
            "_id" : "gS9RUJgBDC_Ir7OTV2QD",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品E",
              "annual_rate" : "3.0100%",
              "describe" : "30天定投产品推荐,最低8000起投,每天收益会消息推送"
            }
          }
        ]
      }
    }
  • 按查询条件搜索

    搜索年化率在3.0000%到3.1300%之间的产品。

    GET /product_info/_doc/_search
    {
      "query": {
        "range": {
          "annual_rate": {
            "gte": "3.0000%",
            "lte": "3.1300%"
          }
        }
      }
    }

    搜索成功返回如下:

    {
      "took" : 5,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : {
          "value" : 3,
          "relation" : "eq"
        },
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "product_info",
            "_type" : "_doc",
            "_id" : "gC9RUJgBDC_Ir7OTV2QD",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品D",
              "annual_rate" : "3.1200%",
              "describe" : "90天定投产品,最低12000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "_doc",
            "_id" : "fi9RUJgBDC_Ir7OTV2QD",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品B",
              "annual_rate" : "3.1100%",
              "describe" : "90天定投产品,最低10000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "_doc",
            "_id" : "gS9RUJgBDC_Ir7OTV2QD",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品E",
              "annual_rate" : "3.0100%",
              "describe" : "30天定投产品推荐,最低8000起投,每天收益会消息推送"
            }
          }
        ]
      }
    }
说明

7.10版本同时支持ES7ES8的查询数据语法。

更多搜索方式,请参见Query DSL

7.0以下版本

  • 全文搜索

    GET /product_info/products/_search
    {
      "query": {
        "match": {
          "describe": "每天收益到账消息推送"
        }
      }
    }

    搜索成功返回如下:

    {
      "took" : 21,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 6,
        "max_score" : 2.6264062,
        "hits" : [
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "J8YIQZgBMhABkprCeWXb",
            "_score" : 2.6264062,
            "_source" : {
              "productName" : "理财产品B",
              "annual_rate" : "3.1100%",
              "describe" : "90天定投产品,最低10000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "KcYIQZgBMhABkprCeWXb",
            "_score" : 1.489365,
            "_source" : {
              "productName" : "理财产品D",
              "annual_rate" : "3.1200%",
              "describe" : "90天定投产品,最低12000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "KMYIQZgBMhABkprCeWXb",
            "_score" : 1.4445845,
            "_source" : {
              "productName" : "理财产品C",
              "annual_rate" : "3.3500%",
              "describe" : "270天定投产品,最低40000起投,每天收益立即到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "K8YIQZgBMhABkprCeWXb",
            "_score" : 0.5753642,
            "_source" : {
              "productName" : "理财产品F",
              "annual_rate" : "2.7500%",
              "describe" : "热门短期产品,3天短期,无须任何手续费用,最低500起投,通过短信提示获取收益消息"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "JsYIQZgBMhABkprCeWXb",
            "_score" : 0.5469647,
            "_source" : {
              "productName" : "理财产品A",
              "annual_rate" : "3.2200%",
              "describe" : "180天定期理财,最低20000起投,收益稳定,可以自助选择消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "KsYIQZgBMhABkprCeWXb",
            "_score" : 0.53964466,
            "_source" : {
              "productName" : "理财产品E",
              "annual_rate" : "3.0100%",
              "describe" : "30天定投产品推荐,最低8000起投,每天收益会消息推送"
            }
          }
        ]
      }
    }
    
  • 按查询条件搜索

    搜索年化率在3.0000%到3.1300%之间的产品。

    GET /product_info/products/_search
    {
      "query": {
        "range": {
          "annual_rate": {
            "gte": "3.0000%",
            "lte": "3.1300%"
          }
        }
      }
    }

    搜索成功返回如下:

    {
      "took" : 15,
      "timed_out" : false,
      "_shards" : {
        "total" : 5,
        "successful" : 5,
        "skipped" : 0,
        "failed" : 0
      },
      "hits" : {
        "total" : 3,
        "max_score" : 1.0,
        "hits" : [
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "J8YIQZgBMhABkprCeWXb",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品B",
              "annual_rate" : "3.1100%",
              "describe" : "90天定投产品,最低10000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "KcYIQZgBMhABkprCeWXb",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品D",
              "annual_rate" : "3.1200%",
              "describe" : "90天定投产品,最低12000起投,每天收益到账消息推送"
            }
          },
          {
            "_index" : "product_info",
            "_type" : "products",
            "_id" : "KsYIQZgBMhABkprCeWXb",
            "_score" : 1.0,
            "_source" : {
              "productName" : "理财产品E",
              "annual_rate" : "3.0100%",
              "describe" : "30天定投产品推荐,最低8000起投,每天收益会消息推送"
            }
          }
        ]
      }
    }
    

更多搜索方式,请参见Query DSL

删除索引

了解了阿里云Elasticsearch的使用方法后,您可以执行如下命令,删除对应索引,避免浪费资源。

警告

索引删除后不可恢复,请谨慎操作。

DELETE /product_info

删除成功后,返回如下结果。

{
  "acknowledged" : true
}