|
@@ -661,25 +661,30 @@ namespace Hotline.Api.Controllers
|
|
|
foreach (var keyword in keywords)
|
|
|
{
|
|
|
if (dto.RetrievalType == EKnowledgeRetrievalType.All)
|
|
|
- exp.Or(m => m.Title.Contains(keyword) || m.Content.Contains(keyword));
|
|
|
+ exp.Or(x => x.Title.Contains(keyword) || x.Content.Contains(keyword));
|
|
|
if (dto.RetrievalType == EKnowledgeRetrievalType.Title)
|
|
|
- exp.Or(m => m.Title.Contains(keyword));
|
|
|
+ exp.Or(x => x.Title.Contains(keyword));
|
|
|
if (dto.RetrievalType == EKnowledgeRetrievalType.Content)
|
|
|
- exp.Or(m => m.Content.Contains(keyword));
|
|
|
+ exp.Or(x => x.Content.Contains(keyword));
|
|
|
if (dto.RetrievalType == EKnowledgeRetrievalType.Summary)
|
|
|
- exp.Or(m => m.Summary != null && m.Summary.Contains(keyword));
|
|
|
+ exp.Or(x => x.Summary != null && x.Summary.Contains(keyword));
|
|
|
if (dto.RetrievalType == EKnowledgeRetrievalType.KeyWord)
|
|
|
{
|
|
|
var keywordEntity = await _knowledgeWordRepository.GetAsync(m => m.Tag == keyword && m.IsEnable == 0);
|
|
|
if (keywordEntity is null) continue;
|
|
|
- exp.Or(m => SqlFunc.JsonArrayAny(m.Keywords, keywordEntity.Id));
|
|
|
+ exp.Or(x => SqlFunc.JsonArrayAny(x.Keywords, keywordEntity.Id));
|
|
|
}
|
|
|
}
|
|
|
sugar.Where(exp.ToExpression());
|
|
|
}
|
|
|
if (dto.Content.NotNullOrEmpty())
|
|
|
{
|
|
|
- var keywords = dto.Content.SplitKeywords();
|
|
|
+ var keywords = dto.Content!.GetSegment();
|
|
|
+ var keywordIds = _knowledgeWordRepository.Queryable()
|
|
|
+ .Where(m => keywords.Contains(m.Tag))
|
|
|
+ .Select(m => m.Id)
|
|
|
+ .ToList();
|
|
|
+ sugar = sugar.Where(x => SqlFunc.JsonArrayAny(x.Keywords, keywordIds));
|
|
|
}
|
|
|
|
|
|
switch (dto.Sort)
|