diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2017-08-31 10:02:21 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2017-08-31 10:02:21 +0000 |
commit | ae01edaf6692d30e6206b2e6eae213f0c52a1ded (patch) | |
tree | ac6358404158488353b1deb95a1042bf6e63d41b /container-search | |
parent | 21219b0c636f219e239567e7f4bd7b536dbb9cbc (diff) |
render infinite or NaN relevance as "0.0"
Diffstat (limited to 'container-search')
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<Result> { 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<Relevance> { */ @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) { |