瀏覽代碼

优化搜索

懒得勤快 5 年之前
父節點
當前提交
ecd71151cb

+ 12 - 1
src/Masuit.MyBlogs.Core/Controllers/AdvertisementController.cs

@@ -7,6 +7,7 @@ using Masuit.MyBlogs.Core.Models.DTO;
 using Masuit.MyBlogs.Core.Models.Entity;
 using Masuit.MyBlogs.Core.Models.Enum;
 using Masuit.MyBlogs.Core.Models.ViewModel;
+using Masuit.Tools;
 using Masuit.Tools.Core.Net;
 using Masuit.Tools.Linq;
 using Microsoft.AspNetCore.Mvc;
@@ -61,7 +62,7 @@ namespace Masuit.MyBlogs.Core.Controllers
             var dic = await CategoryService.GetQuery(c => cids.Contains(c.Id)).ToDictionaryAsync(c => c.Id + "", c => c.Name);
             foreach (var ad in list.Data.Where(ad => !string.IsNullOrEmpty(ad.CategoryIds)))
             {
-                ad.CategoryNames = ad.CategoryIds.Split(",").Select(c => dic.GetValueOrDefault(c)).Join(",");
+                ad.CategoryNames = JiebaNet.Segmenter.Common.Extensions.Join(ad.CategoryIds.Split(",").Select(c => dic.GetValueOrDefault(c)), ",");
                 ad.CreateTime = ad.CreateTime.ToTimeZone(HttpContext.Session.Get<string>(SessionKey.TimeZone));
                 ad.UpdateTime = ad.UpdateTime.ToTimeZone(HttpContext.Session.Get<string>(SessionKey.TimeZone));
             }
@@ -78,6 +79,16 @@ namespace Masuit.MyBlogs.Core.Controllers
         public async Task<IActionResult> Save(AdvertisementDto model)
         {
             model.CategoryIds = model.CategoryIds?.Replace("null", "");
+            if (model.Types.Contains(AdvertiseType.Banner.ToString("D")) && string.IsNullOrEmpty(model.ImageUrl))
+            {
+                return ResultData(null, false, "宣传大图不能为空");
+            }
+
+            if (model.Types.Length > 3 && string.IsNullOrEmpty(model.ThumbImgUrl))
+            {
+                return ResultData(null, false, "宣传小图不能为空");
+            }
+
             var b = await AdsService.AddOrUpdateSavedAsync(a => a.Id, model.Mapper<Advertisement>()) > 0;
             return ResultData(null, b, b ? "保存成功" : "保存失败");
         }

+ 0 - 1
src/Masuit.MyBlogs.Core/Controllers/PostController.cs

@@ -48,7 +48,6 @@ namespace Masuit.MyBlogs.Core.Controllers
         public IPostHistoryVersionService PostHistoryVersionService { get; set; }
         public IInternalMessageService MessageService { get; set; }
         public IPostMergeRequestService PostMergeRequestService { get; set; }
-
         public IWebHostEnvironment HostEnvironment { get; set; }
         public ISearchEngine<DataContext> SearchEngine { get; set; }
         public ImagebedClient ImagebedClient { get; set; }

+ 5 - 0
src/Masuit.MyBlogs.Core/Infrastructure/Services/PostService.cs

@@ -141,6 +141,11 @@ namespace Masuit.MyBlogs.Core.Infrastructure.Services
             }
 
             var searchOptions = fields.Any() ? new SearchOptions(newkeywords.Join(" "), page, size, fields.Join(",")) : new SearchOptions(keyword, page, size, typeof(Post));
+            if (keyword.Contains(new[] { " ", ",", "+", ";" }))
+            {
+                searchOptions.Score = 0.2f;
+            }
+
             return searchOptions;
         }
 

+ 1 - 1
src/Masuit.MyBlogs.Core/Masuit.MyBlogs.Core.csproj

@@ -53,7 +53,7 @@
         <PackageReference Include="MiniProfiler.EntityFrameworkCore" Version="4.2.1" />
         <PackageReference Include="PanGu.HighLight" Version="1.0.0" />
         <PackageReference Include="Polly" Version="7.2.1" />
-        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.0-alpha.1" />
+        <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.0-alpha.2" />
         <PackageReference Include="Svg" Version="3.1.1" />
         <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.5" />
         <PackageReference Include="TimeZoneConverter" Version="3.3.0" />

+ 1 - 1
src/Masuit.MyBlogs.Core/Program.cs

@@ -42,6 +42,6 @@ namespace Masuit.MyBlogs.Core
 
             opt.Limits.MaxRequestBodySize = null;
             Console.WriteLine($"应用程序监听端口:http:{port},https:{sslport}");
-        }).UseIISIntegration().UseStartup<Startup>());
+        }).UseStartup<Startup>());
     }
 }

+ 6 - 4
src/Masuit.MyBlogs.Core/Startup.cs

@@ -100,7 +100,7 @@ namespace Masuit.MyBlogs.Core
             }); //配置Cookie策略
             services.AddDbContext<DataContext>(opt =>
             {
-                opt.UseMySql(AppConfig.ConnString, builder => builder.EnableRetryOnFailure(3)).EnableDetailedErrors().EnableSensitiveDataLogging();
+                opt.UseMySql(AppConfig.ConnString, ServerVersion.AutoDetect(AppConfig.ConnString), builder => builder.EnableRetryOnFailure(3)).EnableDetailedErrors();
                 //opt.UseSqlServer(AppConfig.ConnString);
             }); //配置数据库
             services.Configure<FormOptions>(options =>
@@ -167,6 +167,10 @@ namespace Masuit.MyBlogs.Core
         public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DataContext db, IHangfireBackJob hangfire, LuceneIndexerOptions luceneIndexerOptions)
         {
             ServiceProvider = app.ApplicationServices;
+            db.Database.EnsureCreated();
+            InitSettings(db);
+            UseLuceneSearch(env, hangfire, luceneIndexerOptions);
+
             app.UseForwardedHeaders().UseCertificateForwarding(); // X-Forwarded-For
             if (env.IsDevelopment())
             {
@@ -177,10 +181,7 @@ namespace Masuit.MyBlogs.Core
                 app.UseExceptionHandler("/ServiceUnavailable");
             }
 
-            db.Database.EnsureCreated();
-            InitSettings(db);
             app.UseBundles();
-            UseLuceneSearch(env, hangfire, luceneIndexerOptions);
             if (bool.Parse(Configuration["Https:Enabled"]))
             {
                 app.UseHttpsRedirection();
@@ -224,6 +225,7 @@ namespace Masuit.MyBlogs.Core
                 endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}"); // 默认路由
                 endpoints.MapHub<MyHub>("/hubs");
             });
+
             HangfireJobInit.Start(); //初始化定时任务
             Console.WriteLine("网站启动完成");
         }

+ 4 - 10
src/Masuit.MyBlogs.Core/Views/Post/Details.cshtml

@@ -162,16 +162,10 @@
                             </h3>
 
                             <div class="row">
-                                @{
-                                    string imgSrc = ad.ThumbImgUrl;
-                                    if (!string.IsNullOrEmpty(imgSrc))
-                                    {
-                                        <div class="col-md-3 paddingright-clear">
-                                            <img class="img-thumbnail img-responsive" src="@imgSrc" alt="@ad.Title" title="@ad.Title ">
-                                        </div>
-                                    }
-                                }
-                                <div class="col-md-@(string.IsNullOrEmpty(imgSrc) ? 12 : 9)">
+                                <div class="col-md-2 paddingright-clear">
+                                    <img class="img-thumbnail img-responsive" src="@ad.ThumbImgUrl" alt="@ad.Title" title="@ad.Title ">
+                                </div>
+                                <div class="col-md-10">
                                     <p>
                                         @ad.Description
                                     </p>

+ 4 - 11
src/Masuit.MyBlogs.Core/Views/Post/Details_Admin.cshtml

@@ -152,18 +152,11 @@
                                 @ad.Title
                                 <span class="text-red">[推广]</span>
                             </h3>
-
                             <div class="row">
-                                @{
-                                    string imgSrc = ad.ThumbImgUrl;
-                                    if (!string.IsNullOrEmpty(imgSrc))
-                                    {
-                                        <div class="col-md-3 paddingright-clear">
-                                            <img class="img-thumbnail img-responsive" src="@imgSrc" alt="@ad.Title" title="@ad.Title ">
-                                        </div>
-                                    }
-                                }
-                                <div class="col-md-@(string.IsNullOrEmpty(imgSrc) ? 12 : 9)">
+                                <div class="col-md-2 paddingright-clear">
+                                    <img class="img-thumbnail img-responsive" src="@ad.ThumbImgUrl" alt="@ad.Title" title="@ad.Title ">
+                                </div>
+                                <div class="col-md-10">
                                     <p>
                                         @ad.Description
                                     </p>

+ 8 - 5
src/Masuit.MyBlogs.Core/wwwroot/ng-views/views/partner.html

@@ -214,7 +214,7 @@
             <table class="table table-bordered table-hover">
                 <tr>
                     <td style="min-width: 110px">描述</td>
-                    <td colspan="2">{{partner.Description}}</td>
+                    <td colspan="3">{{partner.Description}}</td>
                 </tr>
                 <tr>
                     <td>推广地址</td>
@@ -241,11 +241,12 @@
                             </div>
                         </div>
                     </td>
-                    <td>分类:{{partner.CategoryNames}}</td>
+                    <td>分类:</td>
+                    <td>{{partner.CategoryNames}}</td>
                 </tr>
                 <tr>
                     <td>宣传大图片</td>
-                    <td colspan="2">
+                    <td colspan="3">
                         <a ng-href="{{partner.ImageUrl}}" target="_blank">
                             <img class="img-rounded img-responsive" style="max-height: fit-content" src="{{partner.ImageUrl}}" />
                         </a>
@@ -253,7 +254,7 @@
                 </tr>
                 <tr>
                     <td>宣传小图片</td>
-                    <td colspan="2">
+                    <td colspan="3">
                         <a ng-href="{{partner.ThumbImgUrl}}" target="_blank">
                             <img class="img-rounded img-responsive" style="max-height: fit-content" src="{{partner.ThumbImgUrl}}" />
                         </a>
@@ -263,11 +264,13 @@
                     <td>竞价:{{partner.Price}}</td>
                     <td>权重:{{partner.Weight}}</td>
                     <td>点击量:{{partner.ViewCount}}</td>
+                    <td>日均点击量:{{partner.AverageViewCount}}</td>
                 </tr>
                 <tr>
                     <td>上架时间:</td>
                     <td>{{partner.CreateTime|date:'yyyy-MM-dd HH:mm:ss'}}</td>
-                    <td>更新时间:{{partner.UpdateTime|date:'yyyy-MM-dd HH:mm:ss'}}</td>
+                    <td>更新时间:</td>
+                    <td>{{partner.UpdateTime|date:'yyyy-MM-dd HH:mm:ss'}}</td>
                 </tr>
             </table>
             <div class="btn-group">