Mapping,就是对索引库中索引的字段名及其数据类型进行定义,类似于关系数据库中表建立时要定义字段名及其数据类型那样,不过es的 mapping比数据库灵活很多,它可以动态添加字段。一般不需要要指定mapping都可以,因为es会自动根据数据格式定义它的类型,如果你需要对某 些字段添加特殊属性(如:定义使用其它分词器、是否分词、是否存储等),就必须手动添加mapping。
有两种添加mapping的方法,一种是定义在配置文件中,一种是运行时手动提交mapping,两种选一种就行了。
先介绍在配置文件中定义mapping,你可以把[mapping名].json文件放到config/mappings/[索引名]目录下,
这个目录 要自己创建,一个mapping和一个索引对应,你也可以定义一个默认的mapping,把自己定义的
default-mapping.json放到 config目录下就行。json格式如下:
{ "mappings":{ "properties":{ "title":{ "type":"string", "store":"yes" }, "description":{ "type":"string", "index":"not_analyzed" }, "price":{ "type":"double" }, "onSale":{ "type":"boolean" }, "type":{ "type":"integer" }, "createDate":{ "type":"date" } } }
接下来介绍通过请求添加mapping,下面为一个添加productIndex索引库的mapping的json格式请求。其中
productIndex 为索引类型,properties下面的为索引里面的字段,type为数据类型,store为是否存
储,"index":"not_analyzed"为 不对该字段进行分词。
{ "productIndex":{ "properties":{ "title":{ "type":"string", "store":"yes" }, "description":{ "type":"string", "index":"not_analyzed" }, "price":{ "type":"double" }, "onSale":{ "type":"boolean" }, "type":{ "type":"integer" }, "createDate":{ "type":"date" } } } }
用java api调用的代码如下:
先创建空索引库:
client.admin().indices().prepareCreate("productIndex").execute().actionGet();
put mapping
XContentBuilder mapping = jsonBuilder() .startObject() .startObject("productIndex") .startObject("properties") .startObject("title").field("type", "string") .field("store", "yes").endObject() .startObject("description").field("type", "string") .field("index", "not_analyzed").endObject() .startObject("price").field("type", "double").endObject() .startObject("onSale").field("type", "boolean").endObject() .startObject("type").field("type", "integer").endObject() .startObject("createDate").field("type", "date").endObject() .endObject() .endObject() .endObject(); PutMappingRequest mappingRequest = Requests.putMappingRequest("productIndex") .type("productIndex").source(mapping); client.admin().indices().putMapping(mappingRequest).actionGet();
相关推荐
标签《ES Java API 中文文档》强调了文档的内容属性,它属于ElasticSearch的一个重要组成部分,即用Java语言进行数据交互和操作的应用程序接口部分。 从部分内容中可以提取出以下知识点: 1. **Transport Client**...
**分布式搜索 Elasticsearch 方案研究 - Java API** Elasticsearch 是一款功能强大的开源搜索引擎,它基于 Lucene 库,提供了一个分布式、实时、可扩展的搜索和分析引擎。本方案主要探讨如何利用 Java API 来与 ...
Java API是Elasticsearch官方提供的与Elasticsearch服务器进行交互的主要工具,它使得开发者能够用Java语言便捷地进行索引、搜索、聚合等多种操作。 ### 一、Elasticsearch核心概念 1. **节点(Node)**: Elastic...
在博客《Elasticsearch Java API详解》中,作者分享了一个使用Java API操作Elasticsearch的实例,包括如何创建索引、插入数据、执行搜索和聚合。通过这个实例,你可以深入理解Elasticsearch Java API的使用方法和...
Elasticsearch 是一个开源的全文搜索引擎,基于 Lucene 库,提供分布式、实时、可扩展的数据搜索和分析能力。在6.8.0版本中,Elasticsearch 提供了强大的索引管理和查询功能,支持多种数据类型,如文本、数值、日期...
1. 分布式架构:Elasticsearch 是一个分布式搜索引擎,这意味着它可以跨多个节点分布数据,并且能够自动处理节点间的通信和数据复制。这种设计提高了系统的可用性和容错性,同时支持大规模的数据处理。 2. 文档型...
Elasticsearch是一个强大的开源搜索引擎,基于Lucene库,由 Elastic 公司开发并维护。它以其高可扩展性、实时性、分布式搜索和分析能力在IT行业中广泛应用,尤其在大数据和日志分析领域表现突出。这里我们将深入探讨...
1. **Elasticsearch**:Elasticsearch 是基于 Lucene 的搜索引擎,提供了 RESTful 风格的 API,使得数据索引和查询变得简单。它支持分布式、实时的数据存储和检索,能够处理大量的数据并快速返回结果。 2. **...
Elasticsearch是一个开源的全文搜索引擎,它以分布式、RESTful接口和Apache Lucene库为基础,提供了高可扩展性、实时搜索、分析和存储数据的能力。这个"elasticsearch-7.14.2-windows-x86_64.zip"文件是Elastic...
Elasticsearch是一个开源的全文搜索引擎,它以分布式、RESTful API接口、实时、高可用性和可扩展性而闻名。在Windows环境下安装和使用Elasticsearch 7.8.0版本,用户可以享受到强大的搜索和分析功能,适用于日志分析...
9. **分布式特性**:作为分布式搜索引擎,Elasticsearch能自动处理节点间的复制和分片,提供高可用性和水平扩展性。通过增加更多节点,可以轻松处理更大规模的数据。 10. **监控和健康检查**:使用Kibana,用户可以...
Elasticsearch是一个分布式、RESTful风格的搜索和数据分析引擎,被广泛用于实时的索引和搜索,尤其在大数据分析领域表现突出。在这个基于Elasticsearch 2.1.1的Java API基本操作代码示例中,我们将探讨如何利用Java ...
Elasticsearch 7.5.2 是一个高度可扩展的开源全文搜索引擎,广泛应用于数据分析、日志聚合和实时搜索场景。这个版本的压缩包“elasticsearch-7.5.2-linux-x86_64.tar.gz”是为Linux 64位系统优化的,包含了在该操作...
- Elasticsearch Java API允许开发者在Java应用程序中直接操作Elasticsearch集群,创建索引、插入文档、执行查询等。 - 首先,你需要添加Elasticsearch的Java客户端库到项目依赖中,通常使用Maven或Gradle进行管理...
Elasticsearch是一个强大的分布式搜索引擎,基于Lucene库构建。在Java API中,与Elasticsearch交互,特别是进行搜索操作,主要是通过使用`QueryBuilder`对象来构造JSON格式的查询条件。本篇文章将深入探讨如何利用...
Elasticsearch是一个强大的开源搜索引擎,基于Lucene,它提供了分布式、实时、可扩展的数据存储和检索功能。在Java环境中操作Elasticsearch,我们通常会利用官方提供的Java API,这是一个非常全面且强大的工具集,让...
Elasticsearch是一个开源的全文搜索引擎,它以其高效、可扩展和分布式特性在IT行业中广泛应用,尤其是在日志分析、实时搜索和大数据分析等领域。最新版的Linux版本为`elasticsearch-8.1.1-linux-x86_64.tar.gz`,这...
Elasticsearch 是一个基于 Lucene 的分布式、RESTful 风格的搜索和数据分析引擎,能够处理大量数据并提供实时搜索功能。它被广泛应用于日志分析、信息检索、网站搜索等领域。Java API 提供了与 Elasticsearch 服务器...
Elasticsearch是一个开源的全文搜索引擎,它以分布式、RESTful API、实时、可扩展和高可用性著称。在Windows平台上部署Elasticsearch 7.16.2,可以帮助用户快速构建高性能的数据检索和分析系统。以下是关于这个版本...