package gov.nih.ncgc.bard.tools;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.FacetField;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.testng.Assert;
import org.testng.annotations.Test;
/**
* A one line summary.
*
* @author Rajarshi Guha
*/
public class SearchTest {
protected static String SOLR_URL = "http://tripod.nih.gov/servlet/solr/";
@Test
public void testConnect() throws MalformedURLException, SolrServerException {
SolrServer solr = new HttpSolrServer(SOLR_URL);
SolrQuery sq = new SolrQuery("dna+repair");
QueryResponse response = solr.query(sq);
List<SolrDocument> docs = new ArrayList<SolrDocument>();
SolrDocumentList sdl = response.getResults();
System.out.println("sdl.getNumFound() = " + sdl.getNumFound());
}
@Test
public void testFacet() throws MalformedURLException, SolrServerException {
String url = "http://tripod.nih.gov/servlet/solr/core-compound/";
SolrServer solr = new HttpSolrServer(url);
SolrQuery sq = new SolrQuery("dna+repair");
sq.setFacet(true);
sq.addFacetQuery("mw:[* TO 100]");
sq.addFacetQuery("mw:[100 TO 200]");
sq.addFacetQuery("mw:[200 TO 300]");
sq.addFacetQuery("mw:[300 TO *]");
QueryResponse response = solr.query(sq);
List<SolrDocument> docs = new ArrayList<SolrDocument>();
SolrDocumentList sdl = response.getResults();
System.out.println("sdl.getNumFound() = " + sdl.getNumFound());
Map<String, Integer> fq = response.getFacetQuery();
for (String key : fq.keySet()) {
System.out.println(key + " => " + fq.get(key));
}
}
@Test
public void testFacetField() throws MalformedURLException, SolrServerException {
String url = "http://tripod.nih.gov/servlet/solr/core-assay/";
SolrServer solr = new HttpSolrServer(url);
SolrQuery sq = new SolrQuery("dna+repair");
sq.setFacet(true);
sq.addFacetField("target_name");
QueryResponse response = solr.query(sq);
List<SolrDocument> docs = new ArrayList<SolrDocument>();
SolrDocumentList sdl = response.getResults();
System.out.println("sdl.getNumFound() = " + sdl.getNumFound());
FacetField targetFacet = response.getFacetField("target_name");
List<FacetField.Count> fcounts = targetFacet.getValues();
int n = 0;
for (FacetField.Count fcount : fcounts) {
n++;
}
Assert.assertTrue(n > 0);
}
}