Elasticsearch 笔记

创建索引

在 Elasticsearch 7 中,可以使用 RESTful API 来创建索引。以下是使用 cURL 命令发送 HTTP 请求来创建索引的示例:

curl -XPUT "http://localhost:9200/artice

添加映射

要为索引添加字段映射,您可以使用 Elasticsearch 的 Mapping API。

curl -XPUT "http://localhost:9200/索引名称/_mapping" -H 'Content-Type: application/json' -d'
{
  "properties": {
    "content": {
      "type": "text"
    },
    "title": {
      "type": "keyword"
    }
  }
}
'

字段类型

Elasticsearch 提供了多种字段类型,以适应不同类型的数据。以下是一些常用的字段类型:

文本类型(Text):用于全文搜索和分析文本数据。
关键字类型(Keyword):用于精确匹配和聚合关键字数据。
数值类型(Numeric):包括整数型、浮点型和日期型等。
整数型:用于存储整数数据,如 long、integer、short 和 byte。
浮点型:用于存储浮点数数据,如 double 和 float。
日期型:用于存储日期和时间数据,如 date。
布尔类型(Boolean):用于存储布尔值,即 true 或 false。
二进制类型(Binary):用于存储二进制数据。
地理位置类型(Geo):用于存储地理位置坐标。
地理点类型(Geo Point):用于存储经纬度坐标。
地理形状类型(Geo Shape):用于存储更复杂的地理形状数据。
IP 类型(IP):用于存储 IPv4 或 IPv6 地址。
附件类型(Attachment):用于处理富文本附件数据。

查询索引

要查询 Elasticsearch 中的索引,可以使用 RESTful API 发送 GET 请求。以下是一个查询索引的示例:

curl -XGET "http://localhost:9200/索引名称"

其中,localhost 是 Elasticsearch 服务器的主机名或 IP 地址,9200 是 Elasticsearch 默认的 HTTP 端口号,索引名称 是您要查询的索引的名称。

发送上述请求后,Elasticsearch 将返回与该索引相关的信息,包括索引的设置、映射和统计数据等。

如果您只想查询索引的某些特定字段或属性,请使用 _settings、_mappings 或 _stats 等路径。例如,要获取索引的映射设置,可以发送以下请求:

curl -XGET "http://localhost:9200/索引名称/_mappings"

类似地,您可以根据具体需求使用适当的路径来查询不同的索引信息。请注意,路径前的斜杠 / 是必需的。

{
    "artice": {
        "mappings": {
            "properties": {
                "content": {
                    "type": "text"
                },
                "title": {
                    "type": "keyword"
                }
            }
        }
    }
}

获取所有索引

获取所有的索引,您可以使用 Elasticsearch 的 _cat API 中的 indices 端点。以下是一个示例:

curl -XGET "http://localhost:9200/_cat/indices?v"
health status index            uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .geoip_databases cz2txzTAQ52O3jIxeR4ftw   1   0         38            5     37.1mb         37.1mb
yellow open   my_index         HLBQQsoORlKzNnJ5SmMOSw   2   1          4            0     17.2kb         17.2kb

索引添加数据

要向 Elasticsearch 索引添加一条数据,您可以使用索引的 index API。以下是一个示例,演示如何使用 cURL 命令将数据添加到指定的索引中:

curl -XPOST "http://localhost:9200/索引名称/_doc" -H 'Content-Type: application/json' -d'
{
  "字段1": "值1",
  "字段2": "值2",
  "字段3": "值3"
}
'

通过上述请求,新的文档将被添加到指定的索引中,并自动生成唯一的文档 ID。
请确保请求中的数据与索引的字段映射相匹配,否则可能会导致错误或数据丢失。

索引查询数据

要查询 Elasticsearch 索引中的数据,您可以使用 search API。以下是一个示例,展示了如何使用 cURL 命令查询指定索引的所有文档:

curl -XGET "http://localhost:9200/索引名称/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "title": "新华时评:做抗洪救灾重建家园的主人"
    }
  }
}
'
{
    "took": 3,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 1,
            "relation": "eq"
        },
        "max_score": 0.6931471,
        "hits": [
            {
                "_index": "artice",
                "_type": "_doc",
                "_id": "do973YkB4E-sn8Z_aVhf",
                "_score": 0.6931471,
                "_source": {
                    "content": "当前,京津冀黑吉等省市广大干部群众仍在同暴雨洪灾作顽强斗争。无论是抗洪抢险还是灾后重建,在各级党委政府的有力组织下,人民群众不畏艰险、守望相助,迸发出强烈的担当精神和主人翁意识。",
                    "title": "新华时评:做抗洪救灾重建家园的主人"
                }
            }
        ]
    }
}

删除索引数据

要从 Elasticsearch 索引中删除数据,您可以使用 delete API。以下是一个示例,演示如何使用 cURL 命令删除指定索引中的文档:

curl -XDELETE "http://localhost:9200/索引名称/_doc/文档ID"

更新索引数据

要更新 Elasticsearch 索引中的数据,您可以使用 update API。以下是一个示例,演示如何使用 cURL 命令更新指定索引中的文档:

curl -XPOST "http://localhost:9200/索引名称/_update/文档ID" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "字段1": "新值1",
    "字段2": "新值2"
  }
}
'

在上述示例中,您需要将 localhost 替换为 Elasticsearch 服务器的主机名或 IP 地址,9200 替换为 Elasticsearch 默认的 HTTP 端口号,索引名称 替换为要更新的文档所在的索引名称,文档ID 替换为要更新的文档的唯一标识符。

posted @ 2023-08-10 11:48  熊云港  阅读(26)  评论(0编辑  收藏  举报