- 必须手动指定分片数。 分片数会影响查询效率。 分两种情况: 数据量大而分片数较少。将影响单分片的查询效率。导致最终查询时间慢。 数据量不大但分片数过多。分片数过多影响聚合效率,也会导致最终查询慢。 不建议使用es的默认分片数(根据es版本的不同,默认分片数为5或者1),不适合实际使用情况。 一般根据数据量或者数据存储大小来判断。大概5到10G,1000w到3000w条数据一个分片。
- 将无需分词查询的字段类型设为keyword。 es中字符串有两种类型,text 和 keyword。如果该字段不需要分词查询(如feed_id),类型设为keyword即可。 keyword类型的字段不会被分词,节约es内存空间。
- 需要中文分词的字段,必须指定分词器。一般为"ik_smart"。 如果不指定分词器,es将会使用默认分词器。默认分词器不支持中文,会把中文分为一个个汉字的形式。浪费空间且不符合实际使用情况。