diff --git a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TagAutoCompleteQueryDAO.java b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TagAutoCompleteQueryDAO.java index 24cba1e449..f9a90dea83 100644 --- a/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TagAutoCompleteQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TagAutoCompleteQueryDAO.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.Set; import org.apache.skywalking.library.elasticsearch.requests.search.BoolQueryBuilder; import org.apache.skywalking.library.elasticsearch.requests.search.Query; -import org.apache.skywalking.library.elasticsearch.requests.search.RangeQueryBuilder; import org.apache.skywalking.library.elasticsearch.requests.search.Search; import org.apache.skywalking.library.elasticsearch.requests.search.SearchBuilder; import org.apache.skywalking.library.elasticsearch.requests.search.aggregation.Aggregation; @@ -51,7 +50,7 @@ public class TagAutoCompleteQueryDAO extends EsDAO implements ITagAutoCompleteQu final long startSecondTB, final long endSecondTB) throws IOException { BoolQueryBuilder query = Query.bool(); - appendTagAutocompleteCondition(tagType, startSecondTB, endSecondTB, query); + query.must(Query.term(TagAutocompleteData.TAG_TYPE, tagType.name())); final SearchBuilder search = Search.builder().query(query); search.aggregation(Aggregation.terms(TagAutocompleteData.TAG_KEY) .field(TagAutocompleteData.TAG_KEY)); @@ -83,7 +82,7 @@ public class TagAutoCompleteQueryDAO extends EsDAO implements ITagAutoCompleteQu final long startSecondTB, final long endSecondTB) throws IOException { BoolQueryBuilder query = Query.bool().must(Query.term(TagAutocompleteData.TAG_KEY, tagKey)); - appendTagAutocompleteCondition(tagType, startSecondTB, endSecondTB, query); + query.must(Query.term(TagAutocompleteData.TAG_TYPE, tagType.name())); final SearchBuilder search = Search.builder().query(query).size(limit); final SearchResponse response = getClient().search( @@ -101,22 +100,4 @@ public class TagAutoCompleteQueryDAO extends EsDAO implements ITagAutoCompleteQu } return tagValues; } - - private void appendTagAutocompleteCondition(final TagType tagType, final long startSecondTB, - final long endSecondTB, - final BoolQueryBuilder query) { - long startMinTB = startSecondTB / 100; - long endMinTB = endSecondTB / 100; - query.must(Query.term(TagAutocompleteData.TAG_TYPE, tagType.name())); - final RangeQueryBuilder rangeQuery = Query.range(TagAutocompleteData.TIME_BUCKET); - if (startMinTB > 0) { - rangeQuery.gte(startMinTB); - } - if (endMinTB > 0) { - rangeQuery.lte(endMinTB); - } - if (startMinTB > 0 || endMinTB > 0) { - query.must(rangeQuery); - } - } } diff --git a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TagAutoCompleteQueryDAO.java b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TagAutoCompleteQueryDAO.java index c4c1aa6210..96101f3cc3 100644 --- a/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TagAutoCompleteQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-influxdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/influxdb/query/TagAutoCompleteQueryDAO.java @@ -104,13 +104,13 @@ public class TagAutoCompleteQueryDAO implements ITagAutoCompleteQueryDAO { final WhereQueryImpl query) { query.and(eq(TagAutocompleteData.TAG_TYPE, tagType.name())); - long startMinTB = startSecondTB / 100; - long endMinTB = endSecondTB / 100; - if (startMinTB > 0) { - query.and(gte(TagAutocompleteData.TIME_BUCKET, startMinTB)); + long startTB = startSecondTB / 1000000 * 10000; + long endTB = endSecondTB / 1000000 * 10000 + 9999; + if (startTB > 0) { + query.and(gte(TagAutocompleteData.TIME_BUCKET, startTB)); } - if (endMinTB > 0) { - query.and(lte(TagAutocompleteData.TIME_BUCKET, endMinTB)); + if (endTB > 0) { + query.and(lte(TagAutocompleteData.TIME_BUCKET, endTB)); } } } diff --git a/oap-server/server-storage-plugin/storage-iotdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/iotdb/query/IoTDBTagAutoCompleteQueryDAO.java b/oap-server/server-storage-plugin/storage-iotdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/iotdb/query/IoTDBTagAutoCompleteQueryDAO.java index bd7465a8d4..1a6db0911b 100644 --- a/oap-server/server-storage-plugin/storage-iotdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/iotdb/query/IoTDBTagAutoCompleteQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-iotdb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/iotdb/query/IoTDBTagAutoCompleteQueryDAO.java @@ -54,7 +54,7 @@ public class IoTDBTagAutoCompleteQueryDAO implements ITagAutoCompleteQueryDAO { Map indexAndValueMap = new HashMap<>(); indexAndValueMap.put(IoTDBIndexes.AUTOCOMPLETE_TAG_TYPE, tagType.name()); IoTDBUtils.addQueryIndexValue(TagAutocompleteData.INDEX_NAME, query, indexAndValueMap); - appendTagAutocompleteCondition(tagType, startSecondTB, endSecondTB, query); + appendTagAutocompleteCondition(startSecondTB, endSecondTB, query); query.append(IoTDBClient.ALIGN_BY_DEVICE); SessionPool sessionPool = client.getSessionPool(); @@ -93,7 +93,7 @@ public class IoTDBTagAutoCompleteQueryDAO implements ITagAutoCompleteQueryDAO { indexAndValueMap.put(IoTDBIndexes.AUTOCOMPLETE_TAG_KEY, tagKey); indexAndValueMap.put(IoTDBIndexes.AUTOCOMPLETE_TAG_TYPE, tagType.name()); IoTDBUtils.addQueryIndexValue(TagAutocompleteData.INDEX_NAME, query, indexAndValueMap); - appendTagAutocompleteCondition(tagType, startSecondTB, endSecondTB, query); + appendTagAutocompleteCondition(startSecondTB, endSecondTB, query); query.append(" limit ").append(limit).append(IoTDBClient.ALIGN_BY_DEVICE); List storageDataList = client.filterQuery(TagAutocompleteData.INDEX_NAME, query.toString(), @@ -109,22 +109,21 @@ public class IoTDBTagAutoCompleteQueryDAO implements ITagAutoCompleteQueryDAO { return tagValues; } - private void appendTagAutocompleteCondition(final TagType tagType, - final long startSecondTB, + private void appendTagAutocompleteCondition(final long startSecondTB, final long endSecondTB, final StringBuilder query) { - long startMinTB = startSecondTB / 100; - long endMinTB = endSecondTB / 100; + long startTB = startSecondTB / 1000000 * 10000; + long endTB = endSecondTB / 1000000 * 10000 + 9999; StringBuilder where = new StringBuilder(); - if (startMinTB > 0) { - where.append(IoTDBClient.TIME).append(" >= ").append(TimeBucket.getTimestamp(startMinTB)); + if (startTB > 0) { + where.append(IoTDBClient.TIME).append(" >= ").append(TimeBucket.getTimestamp(startTB)); } - if (endMinTB > 0) { + if (endTB > 0) { if (where.length() > 0) { where.append(" and "); } - where.append(IoTDBClient.TIME).append(" <= ").append(TimeBucket.getTimestamp(endMinTB)); + where.append(IoTDBClient.TIME).append(" <= ").append(TimeBucket.getTimestamp(endTB)); } if (where.length() > 0) { query.append(" where ").append(where); diff --git a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TagAutoCompleteQueryDAO.java b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TagAutoCompleteQueryDAO.java index 2865a0b9e5..f41f31d34f 100644 --- a/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TagAutoCompleteQueryDAO.java +++ b/oap-server/server-storage-plugin/storage-jdbc-hikaricp-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/jdbc/h2/dao/H2TagAutoCompleteQueryDAO.java @@ -94,17 +94,17 @@ public class H2TagAutoCompleteQueryDAO implements ITagAutoCompleteQueryDAO { sql.append(TagAutocompleteData.TAG_TYPE).append(" = ?"); condition.add(tagType.name()); - long startMinTB = startSecondTB / 100; - long endMinTB = endSecondTB / 100; - if (startMinTB > 0) { + long startTB = startSecondTB / 1000000 * 10000; + long endTB = endSecondTB / 1000000 * 10000 + 9999; + if (startTB > 0) { sql.append(" and "); sql.append(TagAutocompleteData.TIME_BUCKET).append(">=?"); - condition.add(startMinTB); + condition.add(startTB); } - if (endMinTB > 0) { + if (endTB > 0) { sql.append(" and "); sql.append(TagAutocompleteData.TIME_BUCKET).append("<=?"); - condition.add(endMinTB); + condition.add(endTB); } } }