ソースを参照

按日期来划分索引策略

zeje 3 年 前
コミット
c88d29afbd

+ 32 - 0
jetlinks-components/elasticsearch-component/src/main/java/org/jetlinks/community/elastic/search/index/strategies/TimeByDayElasticSearchIndexStrategy.java

@@ -0,0 +1,32 @@
+package org.jetlinks.community.elastic.search.index.strategies;
+
+import org.hswebframework.utils.time.DateFormatter;
+import org.jetlinks.community.elastic.search.index.ElasticSearchIndexProperties;
+import org.jetlinks.community.elastic.search.service.reactive.ReactiveElasticsearchClient;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDate;
+import java.util.Date;
+
+/**
+ * 按日期来划分索引策略
+ *
+ * @author caizz
+ * @since 1.0
+ */
+@Component
+public class TimeByDayElasticSearchIndexStrategy extends TemplateElasticSearchIndexStrategy {
+
+    public TimeByDayElasticSearchIndexStrategy(ReactiveElasticsearchClient client, ElasticSearchIndexProperties properties) {
+        super("time-by-day", client, properties);
+    }
+
+    @Override
+    public String getIndexForSave(String index) {
+        LocalDate now = LocalDate.now();
+        String idx = wrapIndex(index);
+        return idx + "_" + now.getYear()
+            + "-" + (now.getMonthValue() < 10 ? "0" : "") + now.getMonthValue()
+            + "-" + (now.getDayOfMonth() < 10 ? "0" : "") + now.getDayOfMonth();
+    }
+}