在 Elasticsearch 中,索引、映射和文档是数据存储和组织的基本概念。以下是这三个概念的关系和用法:
- 索引:索引是用于存储和组织具有类似结构的文档集合。在我们的书籍示例中,我们可以创建一个名为 “books” 的索引来存储书籍信息。
- 映射:映射定义了索引中文档的字段及其类型。映射可以用于定义字段的数据类型、分析器等。在我们的书籍示例中,我们可以为 “books” 索引定义一个映射,包括书名、作者、出版日期和简介等字段。
- 文档:文档是索引中的单个数据实体,包含一组字段及其值。在我们的书籍示例中,每本书都可以表示为一个文档,包含书名、作者、出版日期和简介等字段。
现在,我们将使用一个包含书籍信息的示例来说明这些概念,并使用中文分词器(如 ik_smart
或 ik_max_word
)来处理书籍简介。
- 创建带有映射的索引:
首先,我们创建一个名为 “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
中文分词器的映射。
- 向带有映射的索引中添加文档:
现在我们可以将书籍文档添加到 “books” 索引中。例如:
curl -X POST "localhost:9200/books/_doc?pretty" -H 'Content-Type: application/json' -d'
{
"title": "活着",
"author": "余华",
"publish_date": "1992-01-01",
"description": "《活着》讲述了农村人福贵悲惨的一生,通过福贵的人生遭遇,展示了一个在命运压迫下挣扎求生的弱者形象。"
}'
- 使用映射进行搜索:
现在我们可以使用 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
。文章来源:https://www.toymoban.com/news/detail-463681.html
总之,-d
参数在 curl
命令中用于指定要发送到服务器的数据。在这些 Elasticsearch 示例中,我们使用 -d
参数向服务器发送 JSON 数据。文章来源地址https://www.toymoban.com/news/detail-463681.html
到了这里,关于3分钟快速了解ES中索引,映射,文档的概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!