提交 99010059 编写于 作者: wu-sheng's avatar wu-sheng 提交者: 彭勇升 pengys

Fix bug about match query in ElasticSearch storage. (#2550)

* Fix bug about match query.

* Update UI and alarm query

* Fix style

* Fix NPE.
上级 2dcf27b7
...@@ -52,6 +52,7 @@ Significantly cost less CPU in low payload.** ...@@ -52,6 +52,7 @@ Significantly cost less CPU in low payload.**
- Support set separated gRPC/Jetty ip:port for receiver, default still use core settings. - Support set separated gRPC/Jetty ip:port for receiver, default still use core settings.
- Fix JVM receiver bug. - Fix JVM receiver bug.
- Fix wrong dest service in mesh analysis. - Fix wrong dest service in mesh analysis.
- Fix search doesn't work as expected.
- Refactor `ScopeDeclaration` annotation. - Refactor `ScopeDeclaration` annotation.
- Refactor register lock mechanism. - Refactor register lock mechanism.
- Add SmartSql component for .NET - Add SmartSql component for .NET
......
...@@ -54,6 +54,11 @@ public class AlarmQuery implements GraphQLQueryResolver { ...@@ -54,6 +54,11 @@ public class AlarmQuery implements GraphQLQueryResolver {
long startTimeBucket = DurationUtils.INSTANCE.startTimeDurationToSecondTimeBucket(duration.getStep(), duration.getStart()); long startTimeBucket = DurationUtils.INSTANCE.startTimeDurationToSecondTimeBucket(duration.getStep(), duration.getStart());
long endTimeBucket = DurationUtils.INSTANCE.endTimeDurationToSecondTimeBucket(duration.getStep(), duration.getEnd()); long endTimeBucket = DurationUtils.INSTANCE.endTimeDurationToSecondTimeBucket(duration.getStep(), duration.getEnd());
return getQueryService().getAlarm(scope.getScopeId(), keyword, paging, startTimeBucket, endTimeBucket); Integer scopeId = null;
if (scope != null) {
scopeId = scope.getScopeId();
}
return getQueryService().getAlarm(scopeId, keyword, paging, startTimeBucket, endTimeBucket);
} }
} }
Subproject commit a005dd1024c2b7e68fbcab5795824634cb81cde8 Subproject commit 02ddbfa8d84865e1a85a25f49933307970d0ab71
...@@ -120,7 +120,7 @@ public class StorageEsInstaller extends ModelInstaller { ...@@ -120,7 +120,7 @@ public class StorageEsInstaller extends ModelInstaller {
JsonObject matchColumn = new JsonObject(); JsonObject matchColumn = new JsonObject();
matchColumn.addProperty("type", "text"); matchColumn.addProperty("type", "text");
matchColumn.addProperty("analyzer", "oap_analyzer"); matchColumn.addProperty("analyzer", "oap_analyzer");
properties.add(columnDefine.getColumnName().getName(), matchColumn); properties.add(matchCName, matchColumn);
} else { } else {
JsonObject column = new JsonObject(); JsonObject column = new JsonObject();
column.addProperty("type", columnTypeEsMapping.transform(columnDefine.getType())); column.addProperty("type", columnTypeEsMapping.transform(columnDefine.getType()));
......
...@@ -54,7 +54,7 @@ public class AlarmQueryEsDAO extends EsDAO implements IAlarmQueryDAO { ...@@ -54,7 +54,7 @@ public class AlarmQueryEsDAO extends EsDAO implements IAlarmQueryDAO {
if (!Strings.isNullOrEmpty(keyword)) { if (!Strings.isNullOrEmpty(keyword)) {
String matchCName = MatchCNameBuilder.INSTANCE.build(AlarmRecord.ALARM_MESSAGE); String matchCName = MatchCNameBuilder.INSTANCE.build(AlarmRecord.ALARM_MESSAGE);
boolQueryBuilder.must().add(QueryBuilders.matchQuery(matchCName, keyword)); boolQueryBuilder.must().add(QueryBuilders.matchPhraseQuery(matchCName, keyword));
} }
sourceBuilder.query(boolQueryBuilder); sourceBuilder.query(boolQueryBuilder);
......
...@@ -20,25 +20,15 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query; ...@@ -20,25 +20,15 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query;
import com.google.common.base.Strings; import com.google.common.base.Strings;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.*;
import java.util.Base64;
import java.util.Collections;
import java.util.List;
import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord; import org.apache.skywalking.oap.server.core.analysis.manual.segment.SegmentRecord;
import org.apache.skywalking.oap.server.core.query.entity.BasicTrace; import org.apache.skywalking.oap.server.core.query.entity.*;
import org.apache.skywalking.oap.server.core.query.entity.QueryOrder;
import org.apache.skywalking.oap.server.core.query.entity.Span;
import org.apache.skywalking.oap.server.core.query.entity.TraceBrief;
import org.apache.skywalking.oap.server.core.query.entity.TraceState;
import org.apache.skywalking.oap.server.core.storage.query.ITraceQueryDAO; import org.apache.skywalking.oap.server.core.storage.query.ITraceQueryDAO;
import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient; import org.apache.skywalking.oap.server.library.client.elasticsearch.ElasticSearchClient;
import org.apache.skywalking.oap.server.library.util.BooleanUtils; import org.apache.skywalking.oap.server.library.util.BooleanUtils;
import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.EsDAO; import org.apache.skywalking.oap.server.storage.plugin.elasticsearch.base.*;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.*;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.RangeQueryBuilder;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder; import org.elasticsearch.search.sort.SortOrder;
...@@ -80,7 +70,8 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO { ...@@ -80,7 +70,8 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
boolQueryBuilder.must().add(rangeQueryBuilder); boolQueryBuilder.must().add(rangeQueryBuilder);
} }
if (!Strings.isNullOrEmpty(endpointName)) { if (!Strings.isNullOrEmpty(endpointName)) {
mustQueryList.add(QueryBuilders.matchPhraseQuery(SegmentRecord.ENDPOINT_NAME, endpointName)); String matchCName = MatchCNameBuilder.INSTANCE.build(SegmentRecord.ENDPOINT_NAME);
mustQueryList.add(QueryBuilders.matchPhraseQuery(matchCName, endpointName));
} }
if (serviceId != 0) { if (serviceId != 0) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId)); boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
......
...@@ -46,7 +46,9 @@ public class H2AlarmQueryDAO implements IAlarmQueryDAO { ...@@ -46,7 +46,9 @@ public class H2AlarmQueryDAO implements IAlarmQueryDAO {
sql.append("from ").append(AlarmRecord.INDEX_NAME).append(" where "); sql.append("from ").append(AlarmRecord.INDEX_NAME).append(" where ");
sql.append(" 1=1 "); sql.append(" 1=1 ");
sql.append(" and ").append(AlarmRecord.SCOPE).append(" = ?"); sql.append(" and ").append(AlarmRecord.SCOPE).append(" = ?");
parameters.add(scopeId.intValue()); if (Objects.nonNull(scopeId)) {
parameters.add(scopeId.intValue());
}
if (startTB != 0 && endTB != 0) { if (startTB != 0 && endTB != 0) {
sql.append(" and ").append(AlarmRecord.TIME_BUCKET).append(" >= ?"); sql.append(" and ").append(AlarmRecord.TIME_BUCKET).append(" >= ?");
parameters.add(startTB); parameters.add(startTB);
......
...@@ -46,7 +46,9 @@ public class MySQLAlarmQueryDAO implements IAlarmQueryDAO { ...@@ -46,7 +46,9 @@ public class MySQLAlarmQueryDAO implements IAlarmQueryDAO {
sql.append("from ").append(AlarmRecord.INDEX_NAME).append(" where "); sql.append("from ").append(AlarmRecord.INDEX_NAME).append(" where ");
sql.append(" 1=1 "); sql.append(" 1=1 ");
sql.append(" and ").append(AlarmRecord.SCOPE).append(" = ?"); sql.append(" and ").append(AlarmRecord.SCOPE).append(" = ?");
parameters.add(scopeId.intValue()); if (Objects.nonNull(scopeId)) {
parameters.add(scopeId.intValue());
}
if (startTB != 0 && endTB != 0) { if (startTB != 0 && endTB != 0) {
sql.append(" and ").append(AlarmRecord.TIME_BUCKET).append(" >= ?"); sql.append(" and ").append(AlarmRecord.TIME_BUCKET).append(" >= ?");
parameters.add(startTB); parameters.add(startTB);
......
Subproject commit b6b3f9b0022c7e8c997abad5f7b8363cf5345181 Subproject commit e58119dbb6a1dabfb5d921df5efd636b51399d9e
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册