提交 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.**
- Support set separated gRPC/Jetty ip:port for receiver, default still use core settings.
- Fix JVM receiver bug.
- Fix wrong dest service in mesh analysis.
- Fix search doesn't work as expected.
- Refactor `ScopeDeclaration` annotation.
- Refactor register lock mechanism.
- Add SmartSql component for .NET
......
......@@ -54,6 +54,11 @@ public class AlarmQuery implements GraphQLQueryResolver {
long startTimeBucket = DurationUtils.INSTANCE.startTimeDurationToSecondTimeBucket(duration.getStep(), duration.getStart());
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 {
JsonObject matchColumn = new JsonObject();
matchColumn.addProperty("type", "text");
matchColumn.addProperty("analyzer", "oap_analyzer");
properties.add(columnDefine.getColumnName().getName(), matchColumn);
properties.add(matchCName, matchColumn);
} else {
JsonObject column = new JsonObject();
column.addProperty("type", columnTypeEsMapping.transform(columnDefine.getType()));
......
......@@ -54,7 +54,7 @@ public class AlarmQueryEsDAO extends EsDAO implements IAlarmQueryDAO {
if (!Strings.isNullOrEmpty(keyword)) {
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);
......
......@@ -20,25 +20,15 @@ package org.apache.skywalking.oap.server.storage.plugin.elasticsearch.query;
import com.google.common.base.Strings;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Base64;
import java.util.Collections;
import java.util.List;
import java.util.*;
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.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.query.entity.*;
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.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.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.RangeQueryBuilder;
import org.elasticsearch.index.query.*;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.elasticsearch.search.sort.SortOrder;
......@@ -80,7 +70,8 @@ public class TraceQueryEsDAO extends EsDAO implements ITraceQueryDAO {
boolQueryBuilder.must().add(rangeQueryBuilder);
}
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) {
boolQueryBuilder.must().add(QueryBuilders.termQuery(SegmentRecord.SERVICE_ID, serviceId));
......
......@@ -46,7 +46,9 @@ public class H2AlarmQueryDAO implements IAlarmQueryDAO {
sql.append("from ").append(AlarmRecord.INDEX_NAME).append(" where ");
sql.append(" 1=1 ");
sql.append(" and ").append(AlarmRecord.SCOPE).append(" = ?");
parameters.add(scopeId.intValue());
if (Objects.nonNull(scopeId)) {
parameters.add(scopeId.intValue());
}
if (startTB != 0 && endTB != 0) {
sql.append(" and ").append(AlarmRecord.TIME_BUCKET).append(" >= ?");
parameters.add(startTB);
......
......@@ -46,7 +46,9 @@ public class MySQLAlarmQueryDAO implements IAlarmQueryDAO {
sql.append("from ").append(AlarmRecord.INDEX_NAME).append(" where ");
sql.append(" 1=1 ");
sql.append(" and ").append(AlarmRecord.SCOPE).append(" = ?");
parameters.add(scopeId.intValue());
if (Objects.nonNull(scopeId)) {
parameters.add(scopeId.intValue());
}
if (startTB != 0 && endTB != 0) {
sql.append(" and ").append(AlarmRecord.TIME_BUCKET).append(" >= ?");
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.
先完成此消息的编辑!
想要评论请 注册