提问人:DanTe 提问时间:11/17/2023 更新时间:11/17/2023 访问量:10
Elasticsearch 仪表板中新用户计数的结果不一致
Inconsistent Results for New Users Count in Elasticsearch Dashboard
问:
我在显示当前活跃用户、新用户和消息总数的仪表板中遇到了 Elasticsearch 版本“8.4.1”的问题。 数据是跟踪过去两个月的,从 5 月到 8 月。
问题在于新用户数量的不一致。例如,在 7 月份,计数是 ,但在昨天重新测试时,它显示 .在 8 月也观察到了同样的不一致,其中计数是 ,但现在是 。1902
1903
3894
3899
其他计数是一致的(消息总数、活跃用户数)。
我使用相同的逻辑来检索活跃用户计数,唯一的区别是用于日期范围的字段。我用于新用户和活跃用户。这两个字段属于同一类型:created_date
dateTime
"created_date": {
"type": "date_nanos",
"store": true,
"format": "date_optional_time" }
以下是我用来获取新用户计数的 Java 代码片段:
private Terms getNewUsersTerms(Integer botId, String from, String to) {
try {
RestHighLevelClient client = getElasticClient(botId);
AggregationBuilder aggregationBuilder = AggregationBuilders.terms("uniqueIds").field("currentState.user.id").size(Integer.MAX_VALUE);
QueryBuilder queryBuilder = QueryBuilders.boolQuery()
.must(QueryBuilders.matchAllQuery())
.filter(QueryBuilders.rangeQuery("currentState.created_date").gte("2023-08-01").lte("2023-08-31"));
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder()
.aggregation(aggregationBuilder)
.query(queryBuilder).size(0);
SearchRequest searchRequest = new SearchRequest(botId + INDEX_POSTFIX)
.source(searchSourceBuilder);
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);
return searchResponse.getAggregations().get("uniqueIds");
} catch (Exception e) {
logger.warn(e.getMessage(), e);
return null;
}}
我正在寻求指导,了解我的方法中可能缺少什么,以及我可以采取哪些步骤来识别和解决此不一致问题。任何帮助将不胜感激!
答: 暂无答案
评论