《深入剖析 Elasticsearch:强大的 Java 开源搜索引擎》

《深入剖析 Elasticsearch:强大的 Java 开源搜索引擎》

​ Elasticsearch 作为一款由 Java 开发的开源搜索引擎,以其卓越的特性在 Java 开发社区中备受青睐。它具备实时搜索、稳定可靠、快速安装和方便使用等突出优点,为开发者提供了强大的搜索解决方案。

一、索引操作

(一)创建索引
  1. 基本创建:通过 PUT /索引名(如 PUT /products)可以创建索引。需注意索引的健康状态分为红色(不可用)、黄色(可用但有风险)和绿色(健康)。默认情况下,Elasticsearch 在创建索引时会为其创建一个备份索引和一个主索引。

  2. 分片配置:可以使用以下方式进行索引分片配置。

    PUT /products
    {
         
      "settings": {
         
        "number_of_shards": 1,
        "number_of_replicas": 0
      }
    }
    

    同时,Elasticsearch 支持丰富的字段类型,如字符串类型(keyword、text)、数字类型(integer、long、float、double)、布尔类型、日期类型等。创建索引时可以定义映射,指定字段类型。

    例:

    PUT /products
    {
          
      "settings": {
         
        "number_of_shards": 1,
        "number_of_replicas": 0
      }, 
      "mappings": {
         
        "properties": {
         
          "title":{
         
            "type": "keyword"
          },
          "price":{
         
            "type": "double"
          },
          "created_at":{
         
            "type": "date"
          },
          "description":{
         
            "type": "text"
          }
        }
      }
    }
    
    (二)查询索引

    使用 GET /_cat/indices?v 可以查询所有索引信息。通过 GET /索引名/_mapping(如 GET /products/_mapping)可以查看特定索引的映射。

    (三)删除索引

    可以使用 DELETE /索引名(如 DELETE /products)删除指定索引,也可以使用 DELETE /*(其中 * 代表通配符,可删除所有索引)。

    二、文档操作

    (一)添加文档

    可以通过指定文档 ID(如 POST /products/_doc/1)或者让系统自动生成文档 ID(如 POST /products/_doc/)来添加文档。添加文档后会返回包含索引信息、文档 ID、版本号等内容的响应。

    (二)查询文档

    使用 GET /products/_doc/文档 ID 可以查询特定文档,响应中包含文档的详细信息。

    (三)删除文档

    通过 DELETE /products/_doc/文档 ID 可以删除指定文档,返回删除操作的结果信息。

    (四)更新文档

    有两种更新方式:

    1. 先删除原始文档再插入更新后的文档,如 PUT /products/_doc/文档 ID
    2. 保留原始内容并在此基础上更新,可使用 POST /products/_doc/文档 ID/_update
    (五)批量操作

    可以使用批量操作同时处理多个文档的添加、更新和删除。例如:

    1. 批量索引两条文档:
    POST /products/_doc/_bulk
    {
         "index":{
         "_id":"1"}}
    {
         "title":"iphone14","price":8999.99,"created_at":"2021-09-15","description":"iPhone 13屏幕采用6.8英寸OLED屏幕"}
    {
         "index":{
         "_id":"2"}}
    {
         "title":"iphone15","price":8999.99,"created_at":"2021-09-15","description":"iPhone 15屏幕采用10.8英寸OLED屏幕"}
    

    2.更新文档同时删除文档:

    POST /products/_doc/_bu
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值