Browse Source

搜索选项增加匹配度阈值设定,默认0.5

懒得勤快 5 years ago
parent
commit
219cde1906

+ 3 - 3
Masuit.LuceneEFCore.SearchEngine.Test/Masuit.LuceneEFCore.SearchEngine.Test.csproj

@@ -13,13 +13,13 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
+    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
     <PackageReference Include="xunit" Version="2.4.1" />
-    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
+    <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
       <PrivateAssets>all</PrivateAssets>
       <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
     </PackageReference>
-    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.3" />
+    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.6" />
   </ItemGroup>
 
   <ItemGroup>

+ 1 - 1
Masuit.LuceneEFCore.SearchEngine/LuceneIndexSearcher.cs

@@ -127,7 +127,7 @@ namespace Masuit.LuceneEFCore.SearchEngine
             // 排序规则处理
 
             var sort = new Sort(sortFields.ToArray());
-            Expression<Func<ScoreDoc, bool>> where = _ => true;
+            Expression<Func<ScoreDoc, bool>> where = m => m.Score >= options.Score;
             if (options.Type != null)
             {
                 // 过滤掉已经设置了类型的对象

+ 1 - 1
Masuit.LuceneEFCore.SearchEngine/Masuit.LuceneEFCore.SearchEngine.csproj

@@ -10,7 +10,7 @@
     <Copyright>懒得勤快</Copyright>
     <PackageProjectUrl>https://github.com/ldqk/Masuit.LuceneEFCore.SearchEngine</PackageProjectUrl>
     <PackageId>Masuit.LuceneEFCore.SearchEngine_int</PackageId>
-    <Version>1.0.3.1</Version>
+    <Version>1.0.3.2</Version>
     <Configurations>Debug;Release;String版本;Guid版本;Long版本</Configurations>
     <RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
     <RunAnalyzersDuringLiveAnalysis>false</RunAnalyzersDuringLiveAnalysis>

+ 5 - 0
Masuit.LuceneEFCore.SearchEngine/Masuit.LuceneEFCore.SearchEngine.xml

@@ -900,6 +900,11 @@
             文档类型
             </summary>
         </member>
+        <member name="P:Masuit.LuceneEFCore.SearchEngine.SearchOptions.Score">
+            <summary>
+            匹配度,0-1,数值越大结果越精确
+            </summary>
+        </member>
         <member name="M:Masuit.LuceneEFCore.SearchEngine.SearchOptions.ClearBoosts">
             <summary>
             清除多字段搜索时,给字段的搜索加速

+ 5 - 0
Masuit.LuceneEFCore.SearchEngine/SearchOptions.cs

@@ -70,6 +70,11 @@ namespace Masuit.LuceneEFCore.SearchEngine
         /// </summary>
         public Type Type { get; set; }
 
+        /// <summary>
+        /// 匹配度,0-1,数值越大结果越精确
+        /// </summary>
+        public float Score { get; set; } = 0.5f;
+
         /// <summary>
         /// 清除多字段搜索时,给字段的搜索加速
         /// </summary>

+ 3 - 3
WebSearchDemo/WebSearchDemo.csproj

@@ -13,9 +13,9 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.3" />
-    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.3" />
-    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.2.1" />
+    <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.1.6" />
+    <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="3.1.6" />
+    <PackageReference Include="Swashbuckle.AspNetCore" Version="5.5.1" />
   </ItemGroup>
 
   <ItemGroup>