在创立 Elasticsearch(简称 ES)索引时,有多个注意事项须要思考。以下是一些要害的注意事项,我会通过具体的例子进行具体阐明。
-
明确索引需要 :在创立索引之前,咱们须要对咱们的数据和查问需要有清晰的了解。这包含数据的类型(例如文本,数字,日期等)、数据的大小(例如是否有大量的数据须要被索引)、查问的需要(例如是否须要全文搜寻,是否须要聚合操作等)。这些因素都会影响咱们如何设置索引的映射和设置。
例如,假如咱们有一个蕴含用户信息的数据集,每个用户有姓名、年龄、生日、地址等属性。如果咱们须要对姓名进行全文搜寻,对年龄进行范畴查问,对生日进行聚合操作,那么咱们在创立索引时就须要为每个字段设置相应的类型和分析器。
-
索引映射 :映射是定义索引中字段如何存储和如何搜寻的过程。咱们能够为每个字段定义类型(例如 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
类型,能够进行准确搜寻。 -
索引设置 :在创立索引时,咱们能够定义一些设置,包含分片数、正本数、刷新距离等。
例如,假如咱们的用户信息数据集十分大,咱们能够将分片数设置为 5,将正本数设置为 1,以进步搜寻性能和数据的可用性:
PUT /user { `settings`: { `number_of_shards`: 5, `number_of_replicas`: 1 }, ... }
须要留神的是,索引的分片数在创立时就须要定义好,之后无奈更改。而正本数能够在之后进行批改。
- 动静映射 :ES 默认开启动静映射性能,这意味着如果索引中新退出的文档蕴含新的字段,ES 会主动为这些新字段创立映射。尽管这个性能在某些状况下很有用,但在某些状况下也可能导致问题。