From ae01edaf6692d30e6206b2e6eae213f0c52a1ded Mon Sep 17 00:00:00 2001 From: Arne Juul Date: Thu, 31 Aug 2017 10:02:21 +0000 Subject: render infinite or NaN relevance as "0.0" --- .../src/main/java/com/yahoo/search/rendering/JsonRenderer.java | 3 ++- container-search/src/main/java/com/yahoo/search/result/Relevance.java | 3 +++ .../yahoo/prelude/searcher/test/QuerySnapshotSearcherTestCase.java | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java index c39f0387d46..dd8e261a6b7 100644 --- a/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java +++ b/container-search/src/main/java/com/yahoo/search/rendering/JsonRenderer.java @@ -488,7 +488,8 @@ public class JsonRenderer extends AsynchronousSectionedRenderer { if (id != null) generator.writeStringField(ID, id); - generator.writeNumberField(RELEVANCE, hit.getRelevance().getScore()); + generator.writeFieldName(RELEVANCE); + generator.writeNumber(hit.getRelevance().toString()); if (hit.types().size() > 0) { // TODO: Remove types rendering on Vespa 7 generator.writeArrayFieldStart(TYPES); diff --git a/container-search/src/main/java/com/yahoo/search/result/Relevance.java b/container-search/src/main/java/com/yahoo/search/result/Relevance.java index 7737b01cc14..2f6967ee794 100644 --- a/container-search/src/main/java/com/yahoo/search/result/Relevance.java +++ b/container-search/src/main/java/com/yahoo/search/result/Relevance.java @@ -47,6 +47,9 @@ public class Relevance implements Comparable { */ @Override public String toString() { + if (Double.isNaN(score) || Double.isInfinite(score)) { + return "0.0"; + } return DoubleFormatter.stringValue(score); } diff --git a/container-search/src/test/java/com/yahoo/prelude/searcher/test/QuerySnapshotSearcherTestCase.java b/container-search/src/test/java/com/yahoo/prelude/searcher/test/QuerySnapshotSearcherTestCase.java index b1763471c82..b17fdbb4cf2 100644 --- a/container-search/src/test/java/com/yahoo/prelude/searcher/test/QuerySnapshotSearcherTestCase.java +++ b/container-search/src/test/java/com/yahoo/prelude/searcher/test/QuerySnapshotSearcherTestCase.java @@ -26,8 +26,8 @@ public class QuerySnapshotSearcherTestCase extends junit.framework.TestCase { Searcher searcher=new QuerySnapshotSearcher(); Result result = doSearch(searcher, new Query(), 0,10); Hit hit=result.hits().get(0); - assertEquals(String.valueOf(Double.POSITIVE_INFINITY), - hit.getRelevance().toString()); + assertEquals(Double.POSITIVE_INFINITY, hit.getRelevance().getScore()); + assertEquals("0.0", hit.getRelevance().toString()); } private Result doSearch(Searcher searcher, Query query, int offset, int hits) { -- cgit v1.2.3