3分钟快速了解ES中索引,映射,文档的概念

在 Elasticsearch 中,索引、映射和文档是数据存储和组织的基本概念。以下是这三个概念的关系和用法:

  • 索引:索引是用于存储和组织具有类似结构的文档集合。在我们的书籍示例中,我们可以创建一个名为 “books” 的索引来存储书籍信息。
  • 映射:映射定义了索引中文档的字段及其类型。映射可以用于定义字段的数据类型、分析器等。在我们的书籍示例中,我们可以为 “books” 索引定义一个映射,包括书名、作者、出版日期和简介等字段。
  • 文档:文档是索引中的单个数据实体,包含一组字段及其值。在我们的书籍示例中,每本书都可以表示为一个文档,包含书名、作者、出版日期和简介等字段。

现在,我们将使用一个包含书籍信息的示例来说明这些概念,并使用中文分词器(如 ik_smartik_max_word)来处理书籍简介。

  1. 创建带有映射的索引:

首先,我们创建一个名为 “books” 的索引,其中包含一个使用中文分词器的映射。

curl -X PUT "localhost:9200/books?pretty" -H 'Content-Type: application/json' -d'
{
  "settings": {
    "analysis": {
      "analyzer": {
        "ik_analyzer": {
          "type": "custom",
          "tokenizer": "ik_max_word"
        }
      }
    }
  },
  "mappings": {
    "properties": {
      "title": {
        "type": "text",
        "analyzer": "ik_analyzer"
      },
      "author": {
        "type": "keyword"
      },
      "publish_date": {
        "type": "date"
      },
      "description": {
        "type": "text",
        "analyzer": "ik_analyzer"
      }
    }
  }
}'

在这个示例中,我们创建了一个名为 “books” 的索引,并定义了一个使用 ik_max_word 中文分词器的映射。

  1. 向带有映射的索引中添加文档:

现在我们可以将书籍文档添加到 “books” 索引中。例如:

curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{
  "title": "活着",
  "author": "余华",
  "publish_date": "1992-01-01",
  "description": "《活着》讲述了农村人福贵悲惨的一生,通过福贵的人生遭遇,展示了一个在命运压迫下挣扎求生的弱者形象。"
}'
  1. 使用映射进行搜索:

现在我们可以使用 Elasticsearch 的搜索功能来查询包含特定关键词的书籍。例如,我们可以搜索书籍简介中包含 “命运” 的书籍:

curl -X GET "localhost:9200/books/_search?pretty" -H 'Content-Type: application/json' -d'
{
  "query": {
    "match": {
      "description": "命运"
    }
  }
}'

这将返回一个包含搜索结果的 JSON 对象。如果一切正常,您将在结果中看到 “活着” 这本书。

这个示例展示了如何在 Elasticsearch 中使用索引、映射和文档来存储和检索书籍数据,并使用中文分词器处理书籍简介。这三个概念构成了 Elasticsearch 数据组织的基本结构,掌握它们有助于更好地使用 Elasticsearch 进行数据管理和搜索。

在 Elasticsearch 的 REST API 请求中,pretty 参数用于格式化 JSON 响应。当添加 ?pretty 参数时,Elasticsearch 将返回格式化后的、易于阅读的 JSON 响应,其中包含换行符和缩进。这使得 JSON 输出更容易阅读和理解,尤其是在手动发送请求并查看结果时。

如果不使用 ?pretty 参数,Elasticsearch 会返回一个紧凑的 JSON 响应,不包含换行符和缩进。这对于减少响应数据的大小和提高传输速度可能是有益的,尤其是在程序中处理结果时。

总之,?pretty 参数使得 Elasticsearch 的 JSON 响应更易于阅读,尤其是在手动发送请求和查看结果时。但在实际应用程序中处理结果时,您可能不需要使用 ?pretty 参数,因为紧凑的 JSON 响应具有更小的数据大小和更快的传输速度。

在上面的 curl 命令示例中,-d 选项是 curl 的一个命令行参数,表示 “data”。它用于指定要发送到服务器的数据。在这些示例中,我们使用 -d 参数向 Elasticsearch 服务器发送 JSON 数据,如索引设置、映射、文档和查询。

当使用 -d 参数时,curl 默认执行 HTTP POST 请求。如果需要使用其他 HTTP 方法(如 PUT、GET、DELETE 等),可以通过 -X 参数指定,如 -X PUT-X GET-X DELETE

总之,-d 参数在 curl 命令中用于指定要发送到服务器的数据。在这些 Elasticsearch 示例中,我们使用 -d 参数向服务器发送 JSON 数据。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ascarl2010

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值