Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package se.nrm.dina.inventory.client; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; 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.QueryResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; import org.apache.solr.common.util.NamedList; /** * * @author idali */ public class SolrTest { private static SolrServer server; private static final String url = "http://localhost:8983/solr"; public static void main(String[] args) throws SolrServerException { server = new HttpSolrServer(url); // testSMTP(); testHighClassification(); } private static void testHighClassification() { String taxon = "Nematocera"; StringBuilder sb = new StringBuilder(); sb.append("+(ftx:"); sb.append(taxon); sb.append(") +(cln:"); sb.append(262144); sb.append(")"); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(sb.toString()).addField("ht").setRows(1); try { QueryResponse queryResponse = server.query(solrQuery); SolrDocumentList documents = queryResponse.getResults(); SolrDocument document = documents.get(0); String ht = (String) document.getFieldValue("ht"); System.out.println("ht : " + ht); } catch (SolrServerException ex) { Logger.getLogger(SolrTest.class.getName()).log(Level.SEVERE, null, ex); } } public static void testSMTP() throws SolrServerException { List<Object[]> list = new ArrayList<>(); StringBuilder sb = new StringBuilder(); sb.append("+(ftx:Hymenoptera"); sb.append(" ht:*Hymenoptera*) + cln:"); sb.append(262144); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery(sb.toString().trim()).addField("ftx").addField("smtp"); // solrQuery.setParam("group", true); // solrQuery.setParam("group.field", "ftx"); solrQuery.addSort("ftx", SolrQuery.ORDER.asc); solrQuery.setRows(10000); QueryResponse queryResponse = server.query(solrQuery); SolrDocumentList documents = queryResponse.getResults(); Map<String, List<String>> map = new HashMap(); for (SolrDocument document : documents) { // List<String> textList = (List<String>) document.getFieldValue("text"); List<String> smtp = (List<String>) document.getFieldValue("smtp"); //id is the uniqueKey field String ftx = (String) document.getFieldValue("ftx"); System.out.println("result : " + ftx + " --- " + smtp); if (map.containsKey(ftx)) { } else { } } // NamedList respNL = queryResponse.getResponse(); // NamedList groupInfo = (NamedList) respNL.get("grouped"); // NamedList thisGroupInfo = (NamedList) groupInfo.get("ftx"); // // String fullName; // List<String> smtp; // Integer[] counts; // List<Object> groupData = (List<Object>) thisGroupInfo.get("groups"); // // NamedList thisGroup; // SolrDocumentList sdl; // SolrDocument document; // for (Object o : groupData) { // // thisGroup = (NamedList) o; // sdl = (SolrDocumentList) thisGroup.get("doclist"); // document = sdl.get(0); // fullName = (String) document.getFieldValue("ftx"); // smtp = (List<String>) document.getFieldValue("smtp"); // // System.out.println("smtp : " + fullName + " ----" + smtp); // } } }