r1240 - in trunk/wikitty-solr/src: main/java/org/nuiton/wikitty/storage/solr test/java/org/nuiton/wikitty/storage/solr
Author: sletellier Date: 2011-10-25 10:38:14 +0200 (Tue, 25 Oct 2011) New Revision: 1240 Url: http://nuiton.org/repositories/revision/wikitty/1240 Log: - Improve associated tests - Fix javadoc Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java =================================================================== --- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java 2011-10-25 08:37:08 UTC (rev 1239) +++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/SolrUtil.java 2011-10-25 08:38:14 UTC (rev 1240) @@ -411,7 +411,6 @@ * get value of field in SolrDocument, field must have only one value * @param d * @param fieldname - * @param type * @return */ static public String getStringFieldValue(SolrInputDocument d, String fieldname) { @@ -439,7 +438,6 @@ * get value of field in SolrDocument, field must have only one value * @param d * @param fieldname - * @param type * @return */ static public String getStringFieldValue(SolrDocument d, String fieldname) { @@ -466,7 +464,6 @@ * get value of field in SolrDocument, field must have only one value * @param d * @param fieldname - * @param type * @return */ static public Integer getIntFieldValue(SolrDocument d, String fieldname) { @@ -575,7 +572,7 @@ * If value is collection or array get only the first element, else * juste return value. * - * @param o + * @param value * @return */ static public Object getOneValue(Object value) { Modified: trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java =================================================================== --- trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-10-25 08:37:08 UTC (rev 1239) +++ trunk/wikitty-solr/src/main/java/org/nuiton/wikitty/storage/solr/WikittySearchEngineSolr.java 2011-10-25 08:38:14 UTC (rev 1240) @@ -35,6 +35,7 @@ import java.util.Map; import java.util.Set; +import com.ctc.wstx.util.StringUtil; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.solr.client.solrj.SolrQuery; @@ -751,8 +752,17 @@ List<String> ids = new ArrayList<String>(solrResults.size()); for (SolrDocument doc : solrResults) { - String id = SolrUtil.getStringFieldValue(doc, SOLR_ID); - ids.add(id); + + String id; + String select = criteria.getSelect(); + if (StringUtils.isNotEmpty(select)) { + id = SolrUtil.getStringFieldValue(doc, select, TYPE.WIKITTY); + } else { + id = SolrUtil.getStringFieldValue(doc, SOLR_ID); + } + if (id != null) { + ids.add(id); + } } int numFound = (int)resp.getResults().getNumFound(); Modified: trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java =================================================================== --- trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java 2011-10-25 08:37:08 UTC (rev 1239) +++ trunk/wikitty-solr/src/test/java/org/nuiton/wikitty/storage/solr/SolrSearchTest.java 2011-10-25 08:38:14 UTC (rev 1240) @@ -40,7 +40,6 @@ import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; -import org.nuiton.wikitty.entities.FieldType; import org.nuiton.wikitty.search.Criteria; import org.nuiton.wikitty.search.FacetTopic; import org.nuiton.wikitty.search.PagedResult; @@ -263,17 +262,47 @@ @Test public void testAssociativeSearch() throws Exception { - Criteria criteria = Search.query() - .bw("Product.price", "15", "25") - .sw("Product.name", "Paint") - .associated( "Product.category") - .eq("Category.name", "Hardware") - .criteria() - .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); + { + Criteria criteria = Search.query() + .bw("Product.price", "15", "25") + .sw("Product.name", "Paint") + .associated( "Product.category") + .eq("Category.name", "Hardware") + .criteria() + .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); - PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); - List<String> list = result.getAll(); - assertEquals( 2, list.size() ); + PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); + List<String> list = result.getAll(); + assertEquals( 2, list.size() ); + } + { + Criteria criteria = Search.query() + .bw("Product.price", "15", "25") + .sw("Product.name", "Paint") + .criteria() + .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); + + criteria.setSelect("Product.category"); + PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); + List<String> list = result.getAll(); + + // Must return nothing + assertEquals( 3, list.size() ); + } + { + Criteria criteria = Search.query() + .bw("Product.price", "15", "25") + .sw("Product.name", "Paint") + .criteria() + .setFirstIndex(0).setEndIndex(Criteria.ALL_ELEMENTS); + + criteria.setSelect("Product.name"); + PagedResult<String> result = ws.findAllByCriteria(null, Collections.singletonList(criteria)).get(0); + List<String> list = result.getAll(); + + // Must return nothing + assertEquals( 0, list.size() ); + } } @Test
participants (1)
-
sletellier@users.nuiton.org