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 track = new TrackDetailsIndex
{ {
IndexName = $"{GlobalConst.TrackIndex}-{DateTime.Now:yyyy.MM.dd}",
OrderId = @event.OrderId, OrderId = @event.OrderId,
OrderNo = @event.OrderNo, OrderNo = @event.OrderNo,
OrderType = @event.OrderType, OrderType = @event.OrderType,

View File

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

View File

@ -1,8 +1,6 @@
using Nest; using Nest;
using SJZY.Expand.ABP.Core.Logger; using SJZY.Expand.ABP.Core.Logger;
using SJZY.Expand.ABP.Core.PublicMethords;
using SJZY.Expand.ElasticSearch.Services; using SJZY.Expand.ElasticSearch.Services;
using SJZY.Track.Domain;
using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate; using SJZY.Track.Domain.Aggregates.TrackDetailsAggregate;
using SJZY.Track.Domain.Dtos.TrackDetails; using SJZY.Track.Domain.Dtos.TrackDetails;
@ -25,9 +23,9 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract<TrackDetail
&& q.Term(f => f.IsDeleted, false) && q.Term(f => f.IsDeleted, false)
) )
); );
var res= r.Documents.FirstOrDefault(); var res = r.Documents.FirstOrDefault();
if (r.Hits.FirstOrDefault() != default && res != default) if (res != default && r.Hits.FirstOrDefault() != default)
{ {
res.Id = r.Hits.FirstOrDefault()!.Id; res.Id = r.Hits.FirstOrDefault()!.Id;
} }
@ -37,26 +35,30 @@ internal class TrackDetailsRepository : ElasticSearchContextAbstract<TrackDetail
public async Task UpsertAsync(TrackDetailsIndex index) 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 LogHelper.Error($"轨迹数据新增失败,原因:{r.DebugInformation}。");
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) // 可选:立即刷新索引使更改立即可见
);
} }
} }
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}。");
}
} }
} }