소스 검색

#2831 Ensure score is finite before adding to API response in SearchHelper and DefaultSearcher.

Shinsuke Sugaya 1 년 전
부모
커밋
93354ce179
2개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 1
      src/main/java/org/codelibs/fess/helper/SearchHelper.java
  2. 4 1
      src/main/java/org/codelibs/fess/rank/fusion/DefaultSearcher.java

+ 4 - 1
src/main/java/org/codelibs/fess/helper/SearchHelper.java

@@ -217,7 +217,10 @@ public class SearchHelper {
                     }
 
                     if (!docMap.containsKey(Constants.SCORE)) {
-                        docMap.put(Constants.SCORE, hit.getScore());
+                        final float score = hit.getScore();
+                        if (Float.isFinite(score)) {
+                            docMap.put(Constants.SCORE, score);
+                        }
                     }
 
                     docMap.put(fessConfig.getIndexFieldId(), hit.getId());

+ 4 - 1
src/main/java/org/codelibs/fess/rank/fusion/DefaultSearcher.java

@@ -184,7 +184,10 @@ public class DefaultSearcher extends RankFusionSearcher {
         }
 
         if (!docMap.containsKey(Constants.SCORE)) {
-            docMap.put(Constants.SCORE, searchHit.getScore());
+            final float score = searchHit.getScore();
+            if (Float.isFinite(score)) {
+                docMap.put(Constants.SCORE, score);
+            }
         }
 
         if (!docMap.containsKey(fessConfig.getIndexFieldId())) {