template中规定了数据的存储格式、分片数量等信息,下边是一个elasticsearch中template例子:
- http://192.168.1.215:9200/_template/content_tpl
- PUT
- {
- "template" : "content_*",
- "settings" : {
- "number_of_shards" : 1,
- "index.mapper.dynamic" : false
- },
- "mappings" : {
- "doc" : {
- "properties" : {
- "id" : {"type" : "long", "store": "yes"},
- "url" : {"type" : "string", "index" : "not_analyzed", "omit_norms": "true", "store": "yes"},
- "signature" : {"type" : "string", "index" : "not_analyzed", "omit_norms": "true", "store": "yes"},
- "keyword" : {"type" : "string", "index_analyzer" : "lezhi_keyword", "index_options": "positions",
- "omit_norms": "true", "store": "no"},
- "count" : {"type": "int", "index": "no", "store": "yes"},
- "lastModified" : {"type" : "long", "store": "yes"}
- }
- }
- }
- }
template大致分成setting和mappings两部分:
1. settings主要作用于index的一些相关配置信息,如分片数、副本数,tranlog同步条件、refresh等。
2. mappings主要是一些说明信息,大致又分为_all、_source、prpperties这三部分:
(1) _all:主要指的是AllField字段,我们可以将一个或多个都包含进来,在进行检索时无需指定字段的情况下检索多个字段。设置“_all" : {"enabled" : true}
(2) _source: 主要指的是SourceField字段,Source可以理解为ES除了将数据保存在索引文件中,另外还有一份源数据。_source字段在我们进行检索 时相当重要,如果在{"enabled" : false}情况下默认检索只会返回ID, 你需要通过Fields字段去到索引中去取数据,效率不是很高。但是enabled设置为true时,索引会比较大,这时可以通过Compress进行压 缩和inclueds、excludes来在字段级别上进行一些限制,自定义哪些字段允许存储。
(3) properties:这是最重要的步伐,主要针对索引结构和字段级别上的一些设置。
一些详细解释可以参考 http://www.elasticsearch.org/guide/reference/mapping/
下面详细介绍properties中的一些配置
1. index_options
Add index_options (applicable to string type) with values of:
(1) docs: only documents are indexed, term frequencies and positions are omitted.
(2) freqs: documents and term frequencies are index, positions are omitted.
(3) positions: documents, term frequencies, and positions are indexed.
see: http://https://github.com/elasticsearch/elasticsearch/issues/2346
positions选项可以让lucene跳过对该项的出现频率和出现位置的索引,还可以节省一些索引在磁盘上的存储空间,还可以加速搜索和过滤过程,但是会但是悄悄阻止需要位置信息的搜索,如阻止PhraseQuery和SpanQuery类的运行
2. index
(1) analyzed -- 使用分词器将域值分解成独立的语汇单元流,并使每个语汇单元能被搜到,适用于普通文本域(如正文、标题、摘要等),通常需要设置“index_analyzer"。
(2) not_analyzed -- 对域进行索引,但不对String值进行分析,实际上将域值作为 单一语汇单元并使之能本搜索,适用于不能被分解的域值,如URL、文件路径、日期、电话等。
(3) no -- 使用对应的域值不被搜索
3. omit_norms
norms记录了索引中index-time boost信息,但是当你进行搜索时可能会比较耗费内存。omit_norms = true则是忽略掉域加权信息,这样在搜索的时候就不会处理索引时刻的加权信息了。
4. store
域存储选项store,用来确定是否需要存储域的真实值,以便后续搜集时能恢复这个值。
(1) yes -- 指定存储域值。该情况下,原始的字符串全部被保存在索引中,并可以由IndexReader类恢复。该选项对于需要展示搜索结果的一些域很有用(如URL、标题等)。如果索引的大小在搜索程序考虑之列的话,不要存储太大的域值,因为这些域值会消耗掉索引的存储空间。
(2) no -- 指定不存储域值。该选项通常跟Index.ANALYZED选项共同用来索引大的文本域值,这些域值不用恢复初始格式,如文本正文。
相关推荐
3. **依赖(Dependency)**: 介绍了如何在Java项目中添加ElasticSearch Java API依赖,特别是推荐使用与ElasticSearch版本号一致的transport版本号。这是使用ElasticSearch Java API前的必要配置。 4. **Java客户端...
Spring Data Elasticsearch 是一个强大的Java库,它使得在Elasticsearch数据库中操作数据变得更加简单。这个框架是Spring Data项目的一部分,它为Elasticsearch提供了一套全面的API和元数据驱动的编程模型,以简化...
在IT行业中,SpringMVC和Elasticsearch是两个非常重要的技术组件。SpringMVC作为Spring框架的一部分,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构,而Elasticsearch则是一种分布式、RESTful风格的搜索和...
下面将详细介绍如何在Spring Boot项目中集成这两个关键的Elasticsearch依赖,并探讨其工作原理。 首先,Spring Boot提供了对Elasticsearch的便捷支持,通过添加对应的起步依赖,我们可以快速地将Elasticsearch集成...
**Elasticsearch** 是一个流行的开源全文搜索引擎,广泛应用于大数据分析、日志分析、...通过深入学习本手册,读者将能全面掌握Elasticsearch的原理、操作和最佳实践,为在实际项目中运用Elasticsearch打下坚实基础。
在本文中,我们将深入探讨如何将Spring MVC框架与Elasticsearch 5.5.0版本进行集成,实现数据的增删改查功能。Elasticsearch是一个高性能、分布式、全文搜索引擎,广泛应用于日志分析、实时数据分析等领域。Spring ...
在SpringBoot中整合Elasticsearch,通常会通过声明一个`@Bean`来配置`RestHighLevelClient`,然后在服务层创建对应的`ElasticsearchTemplate`实例,用于执行各种操作。开发者可以利用SpringBoot的自动配置和依赖注入...
映射是 Elasticsearch 中的数据模型,用于规定索引中字段的类型、分析器等属性,而设置则涉及索引的存储、刷新频率等参数。通过模板,我们可以确保新创建的索引具有预定的结构和配置,从而简化管理流程。 **2. 模板...
本实例属于简单易上手并且能够拿来就用的SpringBoot ES 项目,全文使用的是ElasticsearchTemplate进行开发。 本实例涵盖ES中的各类操作,如索引操作、CRUD操作、批处理、结果排序、分页查询、检索查询、关键字查询、...
以下将详细介绍如何在Spring应用中整合Elasticsearch。 ### 1. 安装与配置Elasticsearch 首先,你需要下载并安装Elasticsearch服务。这通常可以通过访问Elasticsearch官方网站获取最新版本的安装包,或者使用Maven...
在本文中,我们将深入探讨如何使用Spring Boot与Elasticsearch 7.6.2进行基本操作,包括创建索引、添加数据以及查询数据。Elasticsearch是一个强大的分布式搜索引擎,而Spring Boot是Java开发中的轻量级框架,两者...
- Elasticsearch的配置文件是`elasticsearch.yml`,位于解压后的目录中。你可以根据需求修改设置,例如,更改集群名称、节点名称、数据存储路径等。 - 配置网络和端口:默认情况下,Elasticsearch监听9200端口对外...
2. **配置Elasticsearch**:在Spring配置文件中,你需要声明一个`ElasticsearchOperations`的bean,这通常是通过`ElasticsearchTemplate`实现的。配置包括设置Elasticsearch节点的地址、端口以及连接参数等。 3. **...
在Spring Data Elasticsearch中,开发者可以使用Spring Data提供的模板(Template)或者Spring Data仓库(Repositories)来执行数据的持久化操作。为了实现这些功能,Spring Data Elasticsearch提供了以下几方面的...
在本文中,我们将深入探讨如何在Spring Boot应用中配置并使用Elasticsearch。Elasticsearch是一种流行的、基于Lucene的分布式搜索引擎,适用于实时数据分析和大规模数据检索。与Spring Boot结合,可以轻松地在Java...
描述中提到的"springboot2.1.7+elasticsearch6.4.3安装配置文档+后台代码实现增删改查批量删除批量导入"说明了这个压缩包的内容主要是围绕如何在SpringBoot项目中设置和使用Elasticsearch,以及如何实现基础的CRUD...
为了更方便地操作 Elasticsearch,我们可以在配置类中注入 `ElasticsearchOperations`,通常我们会使用 `ElasticsearchTemplate`: ```java @Configuration public class ElasticsearchConfiguration { // ... ...
本文将详细介绍如何在Spring Boot项目中集成Elasticsearch,并提供基础配置的实践指南。 首先,让我们了解Elasticsearch的基本概念。Elasticsearch是一个基于Lucene的搜索引擎,它提供了实时、分布式、可扩展的数据...
在本项目中,我们将探讨如何将Spring Boot 1.x与Elasticsearch 5.x进行整合,尽管Spring Boot 1.x官方文档中只提供了与Elasticsearch 2.x的集成指南。 首先,要整合Spring Boot 1.x和Elasticsearch 5.x,我们需要...