删除某个索引7天之前的数据POST /dj-ruoyi-erp-daemon-prod/_delete_by_query { query: { range: { timestamp: { lt: now-7d/d } } } }优化常规项https://blog.csdn.net/bairo007/article/details/1320195751、按实际情况适当调整主分片的数量如果主分片数量太少会导致每个分片中的数据量过大而且无法利用集群中所有节点的计算资源。如果主分片数量太多会导致索引过度分散造成数据迁移和调整的负担。2、按实际情况适当调整副本分片的数量副本数量的设置会影响索引的可用性和读写性能。如果副本数量太少当某个节点故障时将无法保证数据的可用性。如果副本数量太多会占用过多的磁盘空间和网络带宽降低写入性能。一般来说我们可以通过以下两种方式来调整副本数量在创建索引时指定副本数量在已有索引上执行API操作来更改副本数量。Mapping在Elasticsearch中Mapping是将文档字段映射到索引中的数据结构的过程。Mapping定义了索引中每个字段的类型、分词器、存储方式等信息这些信息对于搜索和聚合操作来说非常重要。通过对Mapping进行优化我们可以提高查询和聚合的性能并减少索引的存储空间。明确字段类型在定义Mapping时我们需要尽可能明确每个字段的类型。Elasticsearch支持的字段类型包括字符串text、keyword数值long、integer、short、byte、double、float、half_float、scaled_float日期date布尔值boolean二进制binary地理位置geo_point、geo_shape在选择字段类型时我们需要根据字段的实际含义和使用场景进行选择。例如对于需要进行全文检索的文本字段通常使用text类型。而对于需要进行精确匹配的文本字段通常使用keyword类型。另外对于数值类型的字段我们还需要注意字段是否需要进行聚合操作因为不同的字段类型在聚合时的性能表现也不同。使用Field DataField Data是Elasticsearch中一种用于聚合操作的数据结构它可以将文档字段的值加载到内存中从而提高聚合操作的性能。比如通过Text字段加聚合操作。在使用Field Data时我们需要注意以下几点Field Data只适用于不可变的字段Field Data占用内存因此在选择使用Field Data时需要注意内存使用情况Field Data对于高基数cardinality字段的性能表现较差。# 参考 https://blog.csdn.net/CSDN_WYL2016/article/details/118941029使用嵌套字段Elasticsearch支持嵌套字段即在一个文档中嵌套另一个文档。使用嵌套字段可以简化查询和聚合操作并提高查询性能。在使用嵌套字段时我们需要注意以下几点嵌套字段的定义必须在Mapping中进行嵌套字段不能直接进行全文检索在使用嵌套字段进行聚合操作时需要使用嵌套聚合nested aggregationAnalyzerAnalyzer是Elasticsearch中用于处理文本的组件它可以将文本分割成一系列的词项term并将这些词项存储在索引中。Analyzer包括三个组件字符过滤器character filter、分词器tokenizer和词项过滤器token filter字符过滤器字符过滤器用于对文本进行预处理例如删除HTML标签、转换特殊字符等。Elasticsearch提供了一些内置的字符过滤器例如HTML Strip Character Filter、Mapping Character Filter等分词器分词器用于将文本分割成一系列的词项。Elasticsearch提供了多种内置的分词器例如Standard Tokenizer、Whitespace Tokenizer、Keyword Tokenizer等。另外我们也可以通过自定义插件来实现自定义的分词器词项过滤器词项过滤器用于对分词后的词项进行过滤、修改或替换。Elasticsearch提供了多种内置的词项过滤器例如Lowercase Token Filter、Stop Token Filter、Synonym Token Filter等。另外我们也可以通过自定义插件来实现自定义的词项过滤器。。Analyzer的优化在使用Analyzer时我们需要注意以下几点尽可能减少字符过滤器和词项过滤器的数量因为它们会增加处理时间根据实际需求选择合适的分词器和词项过滤器在进行全文检索时应该使用与索引时相同的Analyzer。总结通过对Elasticsearch索引进行优化我们可以提高搜索和聚合的性能并减少存储空间的占用。
阅读完成 · 觉得有帮助?