change 修改索引策略

This commit is contained in:
李鹏军 2024-03-05 15:07:08 +08:00
parent 3c14a38578
commit 362ea52f2e
3 changed files with 28 additions and 20 deletions

View File

@ -71,6 +71,7 @@ public class TrackUpsertEventHandler : ITransientDependency, ICapSubscribe
track = new TrackDetailsIndex
{
IndexName = $"{GlobalConst.TrackIndex}-{DateTime.Now:yyyy.MM.dd}",
OrderId = @event.OrderId,
OrderNo = @event.OrderNo,
OrderType = @event.OrderType,

View File

@ -16,6 +16,11 @@ public class TrackDetailsIndex : IdBaseIndex
/// </summary>
public string OrderNo { get; set; } = null!;
/// <summary>
/// 索引名称
/// </summary>
public string IndexName { get; set; } = null!;
/// <summary>
/// 订单类型(主数据枚举TrackOrderType)
/// </summary>

View File

@ -1,8 +1,6 @@
using Nest;
using SJZY.Expand.ABP.Core.Logger;
using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Expand.ElasticSearch.Services;
using SJZY.Track.Domain;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Dtos.TrackDetails;
@ -25,9 +23,9 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract<TrackDetail
&& q.Term(f => f.IsDeleted, false)
)
);
var res= r.Documents.FirstOrDefault();
if (r.Hits.FirstOrDefault() != default && res != default)
var res = r.Documents.FirstOrDefault();
if (res != default && r.Hits.FirstOrDefault() != default)
{
res.Id = r.Hits.FirstOrDefault()!.Id;
}
@ -37,26 +35,30 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract<TrackDetail
public async Task UpsertAsync(TrackDetailsIndex index)
{
try
if (index.Id.IsNullOrWhiteSpace())
{
if (index.Id.IsNullOrWhiteSpace())
// 按天写入es
var r = await Context.IndexAsync(index, request => request
.Index(index.IndexName)
);
if (!r.IsValid)
{
// 按天写入es
await Context.IndexAsync(index, request => request
.Index($"{GlobalConst.TrackIndex}-{DateTime.Now:yyyy.MM.dd}")
);
}
else
{
await Context.UpdateAsync<TrackDetailsIndex>(index.Id, u => u
.Doc(index)
//.Refresh(Refresh.True) // 可选:立即刷新索引使更改立即可见
);
LogHelper.Error($"轨迹数据新增失败,原因:{r.DebugInformation}。");
}
}
catch (Exception ex)
else
{
LogHelper.Error($"轨迹数据新增/修改失败,原因:{ex.Message}。\n{index.ToJson()}");
var r = await Context.UpdateAsync<TrackDetailsIndex>(index.Id, u => u
.Index(index.IndexName)
.Doc(index)
//.Refresh(Refresh.True) // 可选:立即刷新索引使更改立即可见
);
if (!r.IsValid)
{
LogHelper.Error($"轨迹数据更新失败,原因:{r.DebugInformation}。");
}
}
}