From 7c88528848aefe02e87fdce35203c2550a1b2cd8 Mon Sep 17 00:00:00 2001 From: markrmiller Date: Sat, 17 Mar 2012 15:03:28 -0400 Subject: [PATCH] SOLR-2949: Fix + improved tests --- .../component/QueryElevationComponent.java | 6 ++--- ...istributedQueryElevationComponentTest.java | 25 +++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java index 10205252a29..1b892507413 100644 --- a/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java +++ b/solr/core/src/java/org/apache/solr/handler/component/QueryElevationComponent.java @@ -399,7 +399,7 @@ public void prepare(ResponseBuilder rb) throws IOException { SortSpec sortSpec = rb.getSortSpec(); if (sortSpec.getSort() == null) { sortSpec.setSort(new Sort(new SortField[]{ - new SortField("_elevate_", comparator, true), + new SortField(idField, comparator, true), new SortField(null, SortField.Type.SCORE, false) })); } else { @@ -409,12 +409,12 @@ public void prepare(ResponseBuilder rb) throws IOException { ArrayList sorts = new ArrayList(current.length + 1); // Perhaps force it to always sort by score if (force && current[0].getType() != SortField.Type.SCORE) { - sorts.add(new SortField("_elevate_", comparator, true)); + sorts.add(new SortField(idField, comparator, true)); modify = true; } for (SortField sf : current) { if (sf.getType() == SortField.Type.SCORE) { - sorts.add(new SortField("_elevate_", comparator, sf.getReverse())); + sorts.add(new SortField(idField, comparator, !sf.getReverse())); modify = true; } sorts.add(sf); diff --git a/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java b/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java index b1063b85cb9..6d0d80a6c37 100644 --- a/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java +++ b/solr/core/src/test/org/apache/solr/handler/component/DistributedQueryElevationComponentTest.java @@ -51,16 +51,17 @@ public static void beforeClass() throws IOException { @Override public void doTest() throws Exception { - - del("*:*"); - indexr(id,"1", "text", "XXXX XXXX", "field_t", "anything"); - indexr(id,"2", "text", "YYYY YYYY", "plow_t", "rake"); - indexr(id,"3", "text", "ZZZZ ZZZZ"); - indexr(id,"4", "text", "XXXX XXXX"); - indexr(id,"5", "text", "ZZZZ ZZZZ ZZZZ"); - indexr(id,"6", "text", "ZZZZ"); + indexr(id,"1", "int_i", "1", "text", "XXXX XXXX", "field_t", "anything"); + indexr(id,"2", "int_i", "2", "text", "YYYY YYYY", "plow_t", "rake"); + indexr(id,"3", "int_i", "3", "text", "ZZZZ ZZZZ"); + indexr(id,"4", "int_i", "4", "text", "XXXX XXXX"); + indexr(id,"5", "int_i", "5", "text", "ZZZZ ZZZZ ZZZZ"); + indexr(id,"6", "int_i", "6", "text", "ZZZZ"); + + index_specific(2, id, "7", "int_i", "7", "text", "solr"); commit(); + handle.put("explain", SKIPVAL); handle.put("debug", SKIPVAL); handle.put("QTime", SKIPVAL); @@ -74,10 +75,13 @@ public void doTest() throws Exception { handle.put("q", SKIP); handle.put("qt", SKIP); query("q", "*:*", "qt", "/elevate", "shards.qt", "/elevate", "rows", "500", "sort", "id desc", CommonParams.FL, "id, score, [elevated]"); + + query("q", "ZZZZ", "qt", "/elevate", "shards.qt", "/elevate", "rows", "500", CommonParams.FL, "*, [elevated]", "forceElevation", "true", "sort", "int_i desc"); - query("q", "ZZZZ", "qt", "/elevate", "shards.qt", "/elevate", "rows", "500", CommonParams.FL, "id"); + query("q", "solr", "qt", "/elevate", "shards.qt", "/elevate", "rows", "500", CommonParams.FL, "*, [elevated]", "forceElevation", "true", "sort", "int_i asc"); - query("q", "ZZZZ", "qt", "/elevate", "shards.qt", "/elevate", "rows", "500", CommonParams.FL, "*, [elevated]", "score", "score desc"); + // currently cannot sort by id with distrib + // query("q", "ZZZZ", "qt", "/elevate", "shards.qt", "/elevate", "rows", "500", CommonParams.FL, "*, [elevated]", "forceElevation", "true", "sort", "id desc"); } protected void indexr(Object... fields) throws Exception { @@ -85,4 +89,5 @@ protected void indexr(Object... fields) throws Exception { addFields(doc, fields); indexDoc(doc); } + }