`
kfcman
  • 浏览: 399826 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

elasticsearch中template介绍

 
阅读更多

template中规定了数据的存储格式、分片数量等信息,下边是一个elasticsearch中template例子:

 

  1. http://192.168.1.215:9200/_template/content_tpl  
  2. PUT  
  3. {  
  4.     "template" : "content_*",  
  5.     "settings" : {  
  6.         "number_of_shards" : 1,  
  7.     "index.mapper.dynamic" : false  
  8.     },  
  9.     "mappings" : {  
  10.         "doc" : {  
  11.           "properties" : {  
  12.         "id" : {"type" : "long", "store": "yes"},  
  13.             "url" : {"type" : "string", "index" : "not_analyzed", "omit_norms": "true", "store": "yes"},  
  14.         "signature" : {"type" : "string", "index" : "not_analyzed", "omit_norms": "true", "store": "yes"},  
  15.             "keyword" : {"type" : "string", "index_analyzer" : "lezhi_keyword", "index_options": "positions",  
  16.                          "omit_norms": "true", "store": "no"},  
  17.         "count" : {"type": "int", "index": "no", "store": "yes"},  
  18.             "lastModified" : {"type" : "long", "store": "yes"}  
  19.       }  
  20.         }  
  21.     }  
  22. }  

 

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选项共同用来索引大的文本域值,这些域值不用恢复初始格式,如文本正文。

 

分享到:
评论

相关推荐

    ElasticSearch Java API 中文文档

    3. **依赖(Dependency)**: 介绍了如何在Java项目中添加ElasticSearch Java API依赖,特别是推荐使用与ElasticSearch版本号一致的transport版本号。这是使用ElasticSearch Java API前的必要配置。 4. **Java客户端...

    spring-data-elasticsearch中文使用文档

    Spring Data Elasticsearch 是一个强大的Java库,它使得在Elasticsearch数据库中操作数据变得更加简单。这个框架是Spring Data项目的一部分,它为Elasticsearch提供了一套全面的API和元数据驱动的编程模型,以简化...

    springMVC整合elasticsearch,基于maven

    在IT行业中,SpringMVC和Elasticsearch是两个非常重要的技术组件。SpringMVC作为Spring框架的一部分,主要用于构建Web应用程序的模型-视图-控制器(MVC)架构,而Elasticsearch则是一种分布式、RESTful风格的搜索和...

    SpringBoot 集成ElasticSearch两个依赖的jar

    下面将详细介绍如何在Spring Boot项目中集成这两个关键的Elasticsearch依赖,并探讨其工作原理。 首先,Spring Boot提供了对Elasticsearch的便捷支持,通过添加对应的起步依赖,我们可以快速地将Elasticsearch集成...

    Elasticsearch参考手册中文版高清

    **Elasticsearch** 是一个流行的开源全文搜索引擎,广泛应用于大数据分析、日志分析、...通过深入学习本手册,读者将能全面掌握Elasticsearch的原理、操作和最佳实践,为在实际项目中运用Elasticsearch打下坚实基础。

    spring mvc 集成elasticSearch 5.5.0版本

    在本文中,我们将深入探讨如何将Spring MVC框架与Elasticsearch 5.5.0版本进行集成,实现数据的增删改查功能。Elasticsearch是一个高性能、分布式、全文搜索引擎,广泛应用于日志分析、实时数据分析等领域。Spring ...

    Elasticsearch java工具类

    在SpringBoot中整合Elasticsearch,通常会通过声明一个`@Bean`来配置`RestHighLevelClient`,然后在服务层创建对应的`ElasticsearchTemplate`实例,用于执行各种操作。开发者可以利用SpringBoot的自动配置和依赖注入...

    elasticsearch操作模板Demo

    映射是 Elasticsearch 中的数据模型,用于规定索引中字段的类型、分析器等属性,而设置则涉及索引的存储、刷新频率等参数。通过模板,我们可以确保新创建的索引具有预定的结构和配置,从而简化管理流程。 **2. 模板...

    SpringBoot集成Elasticsearch(已实现各种ES操作,上手即可用)

    本实例属于简单易上手并且能够拿来就用的SpringBoot ES 项目,全文使用的是ElasticsearchTemplate进行开发。 本实例涵盖ES中的各类操作,如索引操作、CRUD操作、批处理、结果排序、分页查询、检索查询、关键字查询、...

    elasticsearch spring 集成

    以下将详细介绍如何在Spring应用中整合Elasticsearch。 ### 1. 安装与配置Elasticsearch 首先,你需要下载并安装Elasticsearch服务。这通常可以通过访问Elasticsearch官方网站获取最新版本的安装包,或者使用Maven...

    Spring Boot elasticsearch7.6.2基础操作:创建索引、新增数据、查询数据

    在本文中,我们将深入探讨如何使用Spring Boot与Elasticsearch 7.6.2进行基本操作,包括创建索引、添加数据以及查询数据。Elasticsearch是一个强大的分布式搜索引擎,而Spring Boot是Java开发中的轻量级框架,两者...

    最新版linux elasticsearch-7.9.3-linux-x86_64.tar.gz

    - Elasticsearch的配置文件是`elasticsearch.yml`,位于解压后的目录中。你可以根据需求修改设置,例如,更改集群名称、节点名称、数据存储路径等。 - 配置网络和端口:默认情况下,Elasticsearch监听9200端口对外...

    elasticsearch集成spring开发实例

    2. **配置Elasticsearch**:在Spring配置文件中,你需要声明一个`ElasticsearchOperations`的bean,这通常是通过`ElasticsearchTemplate`实现的。配置包括设置Elasticsearch节点的地址、端口以及连接参数等。 3. **...

    spring-data-elasticsearch

    在Spring Data Elasticsearch中,开发者可以使用Spring Data提供的模板(Template)或者Spring Data仓库(Repositories)来执行数据的持久化操作。为了实现这些功能,Spring Data Elasticsearch提供了以下几方面的...

    springBoot Elasticsearch 配置 demo

    在本文中,我们将深入探讨如何在Spring Boot应用中配置并使用Elasticsearch。Elasticsearch是一种流行的、基于Lucene的分布式搜索引擎,适用于实时数据分析和大规模数据检索。与Spring Boot结合,可以轻松地在Java...

    elasticsearch1.0.zip

    描述中提到的"springboot2.1.7+elasticsearch6.4.3安装配置文档+后台代码实现增删改查批量删除批量导入"说明了这个压缩包的内容主要是围绕如何在SpringBoot项目中设置和使用Elasticsearch,以及如何实现基础的CRUD...

    Java的Spring Boot 集成 Elasticsearch 使用详解.docx

    为了更方便地操作 Elasticsearch,我们可以在配置类中注入 `ElasticsearchOperations`,通常我们会使用 `ElasticsearchTemplate`: ```java @Configuration public class ElasticsearchConfiguration { // ... ...

    Spring boot elasticsearch demo

    本文将详细介绍如何在Spring Boot项目中集成Elasticsearch,并提供基础配置的实践指南。 首先,让我们了解Elasticsearch的基本概念。Elasticsearch是一个基于Lucene的搜索引擎,它提供了实时、分布式、可扩展的数据...

    springboot1.x整合elasticsearch5.x

    在本项目中,我们将探讨如何将Spring Boot 1.x与Elasticsearch 5.x进行整合,尽管Spring Boot 1.x官方文档中只提供了与Elasticsearch 2.x的集成指南。 首先,要整合Spring Boot 1.x和Elasticsearch 5.x,我们需要...

Global site tag (gtag.js) - Google Analytics