Elasticsearch创建一个索引怎么也这么复杂

今天是我们学习ES8.1官方搜索工程师的第一课,首先第一个问题就是根据给定的需求创建一个索引,本篇文章将采用如下(总分总)的形式分析该题目,第一部分先进行考题的分析,猜测要考的知识点大概有什么,然后第二部分对该题目涉及的知识点进行分析讲解,每一个考点后都跟着简单的解读,最后模拟汇总该考题,最终实现熟练掌握该题目。后续本类型文章如不特殊说明均使用该种方式进行讲解,如果有好的建议欢迎留在评论区讨论

本文结构如下:

1、题目分析(总)

2、题目拆解知识点(分)

3、总结(模拟出题考试,总)

下面进入第一部分,题目分析阶段

一、题目分析

题目:根据给定的需求创建一个索引

解读:首先我在看到这个题目的第一感觉就是这个题目很简单,不就是创建个索引吗,最多就是设置几个主分片,几个副本分片,稍微再深点就是字段类型、自定义分词器、索引别名,看着好像很简单,其实实际操作起来还是有一定难度的,不过考试过程中能够查阅官网,所以我们只要熟记考点官网位置即可,下面我就该题目涉及到的(索引设置,字段映射类型,文本分析)这三点进行分析

通过阅读本文,你可以获得什么?

1、定义一个索引常用的配置项有哪些

2、自定义字段映射与动态字段映射

3、如何设置字段的数据类型

4、文本分析中 TokenizerToken filterCharacter filters各自发挥什么作用以及如何设置

5、定义一个指定分片数量的索引,包含自定义分词器,自定义字段映射

二、题目拆解

2.1、索引设置

2.1.1、静态索引设置

静态索引设置是只能在索引创建时或者索引关闭时使用的

  • index.number_of_shards

    索引主分片数量设置,默认1,只能在索引创建时设置,索引关闭时不能修改此选项

  • index.number_of_routing_shards

    index.number_of_shards一起使用的整数值,文档路由到主分片的分片数

  • index.codec

    压缩存储数据策略选择,默认LZ4

  • index.routing_partition_size

    路由可以到达的分片数,默认1,只能在索引创建时设置,这个值必须小于index.number_of_shards,除非index.number_of_shards的值也是1

  • index.soft_deletes.enabled

    索引软删除开关,只能在创建索引时进行配置,默认true

  • index.soft_deletes.retention_lease.period

    软删除记录保留最长期限策略,默认值12h

  • index.load_fixed_bitset_filters_eagerly

    嵌套查询预加载缓存过滤器,默认true

  • index.shard.check_on_startup

    分片打开时是否对分片进行检查的开关。默认false,还有true,checksum,除非特别精通各配置项含义,否则不建议更改

2.1.2、动态索引设置

动态索引设置是可以使用update-index-settings API在激活的索引上来动态设置

更改关闭掉的静态或者动态索引设置可能导致不正确的设置,如果不删除或者重建索引,则无法更正这些错误设置

  • index.number_of_replicas

    副本分片数量设置,默认为1

  • index.auto_expand_replicas

    根据集群中数据节点的数量自动展开的副本数量,默认false关闭

  • index.search.idle.after

    分片多久没有请求或搜索会被认为是空闲的分片,默认30s

  • index.refresh_interval

    执行refresh的间隔,默认1s,可以设置-1来禁用

  • index.max_result_window

    es搜索结果返回的最大记录数量(from+size),默认10000

  • index.max_inner_result_window

    es搜索结果中聚合桶返回的最大数量,默认100

  • index.max_rescore_window

    Rescore 请求的返回记录最大值,默认10000

  • index.max_docvalue_fields_search

    查询请求中对docvalue_fields数量的限制,默认100

  • Index.max_script_fields

    查询请求中允许的script_fields的数量最大值,默认32

  • Index.max_ngram_diff

    NGramTokenizer 和NGramTokenFilter 之间min_grammax_gram之间的最大差异值,默认1

  • index.max_shingle_diff

    shingle token filter 中max_shingle_sizemin_shingle_size最大差值,默认3

  • index.max_refresh_listeners

    索引分片上最大的监听器数量,实现了refresh=wait_for的监听器

  • index.analyze.max_token_count

    使用analyze api 获取最大的token数量,默认10000

  • index.highlight.max_analyzed_offset

    高亮显示时设置的最大字符数,默认1000000

  • index.max_terms_count

    Term 查询中term的最大的数量,默认

你可能感兴趣的:(Java编程,elasticsearch,大数据,搜索引擎)