乐趣区

关于java:创建-elastic-search-索引的一些注意事项

在创立 Elasticsearch(简称 ES)索引时,有多个注意事项须要思考。以下是一些要害的注意事项,我会通过具体的例子进行具体阐明。

  1. 明确索引需要 :在创立索引之前,咱们须要对咱们的数据和查问需要有清晰的了解。这包含数据的类型(例如文本,数字,日期等)、数据的大小(例如是否有大量的数据须要被索引)、查问的需要(例如是否须要全文搜寻,是否须要聚合操作等)。这些因素都会影响咱们如何设置索引的映射和设置。

    例如,假如咱们有一个蕴含用户信息的数据集,每个用户有姓名、年龄、生日、地址等属性。如果咱们须要对姓名进行全文搜寻,对年龄进行范畴查问,对生日进行聚合操作,那么咱们在创立索引时就须要为每个字段设置相应的类型和分析器。

  2. 索引映射 :映射是定义索引中字段如何存储和如何搜寻的过程。咱们能够为每个字段定义类型(例如 text,keyword,date,long 等),也能够定义分析器、格式化器等。

    例如,咱们能够为上述用户信息数据集创立如下的映射:

    PUT /user
    {
      `mappings`: {
        `properties`: {`name`: { `type`: `text`},
          `age`: {`type`: `integer`},
          `birthday`: {`type`: `date`, `format`: `yyyy-MM-dd`},
          `address`: {`type`: `keyword`}
        }
      }
    }

    在这个映射中,name 字段被设置为 text 类型,能够进行全文搜寻。age 字段被设置为 integer 类型,能够进行范畴查问。birthday 字段被设置为 date 类型,并定义了日期的格局。address 字段被设置为 keyword 类型,能够进行准确搜寻。

  3. 索引设置 :在创立索引时,咱们能够定义一些设置,包含分片数、正本数、刷新距离等。

    例如,假如咱们的用户信息数据集十分大,咱们能够将分片数设置为 5,将正本数设置为 1,以进步搜寻性能和数据的可用性:

    PUT /user
    {
      `settings`: {
        `number_of_shards`: 5,
        `number_of_replicas`: 1
      },
      ...
    }

    须要留神的是,索引的分片数在创立时就须要定义好,之后无奈更改。而正本数能够在之后进行批改。

  4. 动静映射 :ES 默认开启动静映射性能,这意味着如果索引中新退出的文档蕴含新的字段,ES 会主动为这些新字段创立映射。尽管这个性能在某些状况下很有用,但在某些状况下也可能导致问题。
退出移动版