se.nrm.dina.inventory.client.SolrTest.java Source code

Java tutorial

Introduction

Here is the source code for se.nrm.dina.inventory.client.SolrTest.java

Source

/*
 * 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);
        //        }
    }

}