Example usage for org.apache.solr.client.solrj SolrQuery SolrQuery

List of usage examples for org.apache.solr.client.solrj SolrQuery SolrQuery

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery SolrQuery.

Prototype

public SolrQuery(String q) 

Source Link

Document

Create a new SolrQuery

Usage

From source file:com.yaotrue.learn.solr.SolrjTest.java

License:Apache License

@Test
public void testFacet() throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery("*:*");
    solrQuery.setFacet(true);/*from   w w  w. j  av  a 2s  .c  om*/
    solrQuery.addFacetQuery("sale_price:[0 TO 200]");
    solrQuery.addFacetQuery("sale_price:[201 TO 300]");
    solrQuery.addFacetQuery("sale_price:[300 TO 400]");
    solrQuery.setFacetSort("count");

    solrQuery.addFacetField("code");
    solrQuery.setFacetMinCount(0);
    solrQuery.setFacetLimit(-1);

    QueryResponse response = solrClient.query(solrQuery);
    if (response != null) {
        List<FacetField> facetFields = response.getFacetFields();
        for (FacetField facetField : facetFields) {
            List<Count> countList = null;
            if (facetField != null) {
                countList = facetField.getValues();
                if (countList != null) {
                    for (Count count : countList) {
                        System.out.println(count.getName() + count.getCount());
                    }
                }
            }
        }

        Map<String, Integer> map = response.getFacetQuery();
        for (String key : map.keySet()) {
            System.out.println(key + ":" + map.get(key));
        }
    }
}

From source file:com.yaotrue.learn.solr.SolrjTest.java

License:Apache License

@Test
public void testGroup() throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery("*:*");

    solrQuery.set(GroupParams.GROUP, true);
    solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, true);
    solrQuery.set(GroupParams.GROUP_LIMIT, 12);
    solrQuery.set(GroupParams.GROUP_FORMAT, "grouped");
    solrQuery.set(GroupParams.GROUP_FACET, true);
    solrQuery.set(GroupParams.GROUP_FIELD, "style");

    QueryResponse queryResponse = solrClient.query(solrQuery);
    GroupResponse groupResponse = queryResponse.getGroupResponse();
    if (null != groupResponse) {
        List<GroupCommand> groupCommandList = groupResponse.getValues();
        for (GroupCommand groupCommand : groupCommandList) {
            int matches = groupCommand.getMatches();
            String name = groupCommand.getName();
            Integer ngroups = groupCommand.getNGroups();

            List<Group> groupList = groupCommand.getValues();
            for (Group group : groupList) {
                SolrDocumentList solrDocumentList = group.getResult();
                ListIterator<SolrDocument> listIterator = solrDocumentList.listIterator();
                while (listIterator.hasNext()) {
                    SolrDocument solrDocument = listIterator.next();
                    System.out.println(solrDocument.get("code"));
                }/*from   w w  w.j av a2 s  .c  o  m*/
            }
        }

    }
}

From source file:com.yaotrue.learn.solr.SolrTest.java

License:Apache License

@Test
public void testSeach() throws SolrServerException, IOException {
    SolrQuery solrQuery = new SolrQuery("*:*");
    QueryResponse queryResponse = solrClient.query(solrQuery);
    SolrDocumentList documentList = queryResponse.getResults();

    for (SolrDocument solrDocument : documentList) {
        System.out.println(solrDocument.getFieldValue("id"));
    }//  ww w. j a  v  a  2 s . c  om
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

public void removeAllWanted() throws Exception {
    SolrQuery query = new SolrQuery("chci:[* TO *]");
    query.addField("code");
    SolrDocumentList docs = IndexerQuery.query(query);
    long numFound = docs.getNumFound();
    Iterator<SolrDocument> iter = docs.iterator();
    while (iter.hasNext()) {
        if (jobData.isInterrupted()) {
            LOGGER.log(Level.INFO, "INDEXER INTERRUPTED");
            break;
        }/*w  ww  .  j av a2 s.  c  om*/
        StringBuilder sb = new StringBuilder();

        SolrDocument resultDoc = iter.next();
        String docCode = (String) resultDoc.getFieldValue("code");
        sb.append("<add><doc>");
        sb.append("<field name=\"code\">").append(docCode).append("</field>");
        sb.append("<field name=\"md5\">").append(docCode).append("</field>");

        sb.append("<field name=\"chci\" update=\"set\" null=\"true\" />");
        sb.append("</doc></add>");
        SolrIndexerCommiter.postData(sb.toString());
        SolrIndexerCommiter.postData("<commit/>");
    }
    query.setQuery("nechci:[* TO *]");
    query.addField("code");
    docs = IndexerQuery.query(query);
    iter = docs.iterator();
    while (iter.hasNext()) {
        if (jobData.isInterrupted()) {
            LOGGER.log(Level.INFO, "INDEXER INTERRUPTED");
            break;
        }
        StringBuilder sb = new StringBuilder();

        SolrDocument resultDoc = iter.next();
        String docCode = (String) resultDoc.getFieldValue("code");
        sb.append("<add><doc>");
        sb.append("<field name=\"code\">").append(docCode).append("</field>");
        sb.append("<field name=\"md5\">").append(docCode).append("</field>");

        sb.append("<field name=\"nechci\" update=\"set\" null=\"true\" />");
        sb.append("</doc></add>");
        SolrIndexerCommiter.postData(sb.toString());
        SolrIndexerCommiter.postData("<commit/>");
    }

    numFound += docs.getNumFound();
    if (numFound > 0 && !jobData.isInterrupted()) {
        removeAllWanted();
    }
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

public void removeAllOffers() throws Exception {
    SolrQuery query = new SolrQuery("nabidka:[* TO *]");
    query.addField("code");
    SolrDocumentList docs = IndexerQuery.query(query);
    Iterator<SolrDocument> iter = docs.iterator();
    while (iter.hasNext()) {
        if (jobData.isInterrupted()) {
            LOGGER.log(Level.INFO, "INDEXER INTERRUPTED");
            break;
        }//from  w  w w  .  j  a  v a2  s.  c  om
        StringBuilder sb = new StringBuilder();

        SolrDocument resultDoc = iter.next();
        String docCode = (String) resultDoc.getFieldValue("code");
        sb.append("<add><doc>");
        sb.append("<field name=\"code\">").append(docCode).append("</field>");
        sb.append("<field name=\"md5\">").append(docCode).append("</field>");

        sb.append("<field name=\"nabidka\" update=\"set\" null=\"true\" />");
        sb.append("<field name=\"nabidka_ext\" update=\"set\" null=\"true\" />");
        sb.append("<field name=\"nabidka_datum\" update=\"set\" null=\"true\" />");
        sb.append("</doc></add>");
        SolrIndexerCommiter.postData(sb.toString());
        SolrIndexerCommiter.postData("<commit/>");
    }

    long numFound = docs.getNumFound();
    if (numFound > 0 && !jobData.isInterrupted()) {
        removeAllOffers();
    }
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

public void removeAllDemands() throws Exception {
    SolrQuery query = new SolrQuery("poptavka:[* TO *]");
    query.addField("code");
    query.setRows(1000);/*from   ww w  .  ja  v  a2  s.  c om*/
    SolrDocumentList docs = IndexerQuery.query(query);
    long numFound = docs.getNumFound();
    Iterator<SolrDocument> iter = docs.iterator();
    while (iter.hasNext()) {
        if (jobData.isInterrupted()) {
            LOGGER.log(Level.INFO, "INDEXER INTERRUPTED");
            break;
        }
        StringBuilder sb = new StringBuilder();

        SolrDocument resultDoc = iter.next();
        String docCode = (String) resultDoc.getFieldValue("code");
        sb.append("<add><doc>");
        sb.append("<field name=\"code\">").append(docCode).append("</field>");
        sb.append("<field name=\"md5\">").append(docCode).append("</field>");

        sb.append("<field name=\"poptavka\" update=\"set\" null=\"true\" />");
        sb.append("<field name=\"poptavka_ext\" update=\"set\" null=\"true\" />");
        sb.append("</doc></add>");
        SolrIndexerCommiter.postData(sb.toString());
        SolrIndexerCommiter.postData("<commit/>");
        LOGGER.log(Level.INFO, "Demands for {0} removed.", docCode);
    }
    if (numFound > 0 && !jobData.isInterrupted()) {
        removeAllDemands();
    }
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

public void reindexDocByIdentifier(String identifier) throws Exception {
    LOGGER.log(Level.INFO, "----- Reindexing doc {0} ...", identifier);

    SolrQuery query = new SolrQuery("id:\"" + identifier + "\"");
    query.addField("id,code");
    query.setRows(1000);// w w  w  .j a v  a  2 s  .co m
    SolrDocumentList docs = IndexerQuery.query(opts.getString("solrIdCore", "vdk_id"), query);
    Iterator<SolrDocument> iter = docs.iterator();
    while (iter.hasNext()) {
        SolrDocument resultDoc = iter.next();
        String uniqueCode = (String) resultDoc.getFieldValue("code");
        reindexDoc(uniqueCode, identifier);
    }
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

public void reindexDoc(String uniqueCode, String identifier) throws Exception {

    SolrQuery query = new SolrQuery("id:\"" + identifier + "\"");
    query.addField("id,code");
    query.setRows(1000);//from ww  w  .j  a  v  a2s  .c o  m
    SolrDocumentList docs = IndexerQuery.query(query);
    Iterator<SolrDocument> iter = docs.iterator();
    if (iter.hasNext()) {
        SolrDocument resultDoc = iter.next();
        String oldUniqueCode = (String) resultDoc.getFieldValue("code");

        if (oldUniqueCode != null && !oldUniqueCode.equals(uniqueCode)) {
            LOGGER.log(Level.INFO, "Cleaning doc {0} from index...", oldUniqueCode);
            String s = "<delete><query>code:" + oldUniqueCode + "</query></delete>";
            SolrIndexerCommiter.postData(s);
            indexDoc(oldUniqueCode);
        }
    }

    LOGGER.log(Level.INFO, "Cleaning doc {0} from index...", uniqueCode);
    String s = "<delete><query>code:" + uniqueCode + "</query></delete>";
    SolrIndexerCommiter.postData(s);

    indexDoc(uniqueCode);
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

public void indexDoc(String uniqueCode) throws Exception {

    try {/*w ww  .  j  a v a2 s  .  c  o  m*/
        LOGGER.log(Level.FINE, "Indexace doc {0}...", uniqueCode);
        StringBuilder sb = new StringBuilder();
        sb.append("<add><doc>");
        sb.append("<field name=\"code\">").append(uniqueCode).append("</field>");
        sb.append("");
        SolrQuery query = new SolrQuery("code:\"" + uniqueCode + "\"");
        query.addField("id,code,code_type,xml,bohemika,zdroj");
        query.setRows(1000);
        SolrDocumentList docs = IndexerQuery.query(opts.getString("solrIdCore", "vdk_id"), query);
        Iterator<SolrDocument> iter = docs.iterator();
        String codeType = "";
        String md5 = "";
        boolean bohemika = false;
        int docsNum = 0;
        while (iter.hasNext()) {
            if (jobData.isInterrupted()) {
                LOGGER.log(Level.INFO, "INDEXER INTERRUPTED");
                break;
            }
            SolrDocument resultDoc = iter.next();

            if (resultDoc.getFieldValue("bohemika") != null) {
                bohemika = (Boolean) resultDoc.getFieldValue("bohemika");
            } else {
                bohemika = Bohemika.isBohemika((String) resultDoc.getFieldValue("xml"));
            }
            codeType = (String) resultDoc.getFieldValue("code_type");

            sb.append(transformXML((String) resultDoc.getFieldValue("xml"), uniqueCode,
                    (String) resultDoc.getFieldValue("code_type"), (String) resultDoc.getFieldValue("id"),
                    bohemika, (String) resultDoc.getFieldValue("zdroj")));

            sb.append(getDocOffers(uniqueCode));
            docsNum++;
            total++;

        }
        sb.append("<field name=\"code_type\">").append(codeType).append("</field>");
        sb.append("<field name=\"md5\">").append(md5).append("</field>");
        sb.append("<field name=\"bohemika\">").append(bohemika).append("</field>");
        sb.append("<field name=\"pocet_doc\">").append(docsNum).append("</field>");

        sb.append("</doc></add>");
        SolrIndexerCommiter.postData(sb.toString());
        //removeDocOffers(uniqueCode);
        //indexDocOffers(uniqueCode);
        //SolrIndexerCommiter.postData("<commit/>");
        //logger.log(Level.INFO, "Doc indexed. Total docs: {0}", total);
    } catch (Exception ex) {
        LOGGER.log(Level.SEVERE, "Error in reindex", ex);
    }
}

From source file:cz.incad.vdkcommon.solr.Indexer.java

License:Open Source License

private boolean isInDemandsCache(String code) {
    if (demandsCache == null) {
        try {/*from   ww w  . ja  v  a2 s  .  c  o m*/
            SolrQuery query = new SolrQuery("poptavka_ext:[* TO *]");
            query.addField("id,code,poptavka_ext,title");
            query.setRows(1000);
            demandsCache = new HashMap<>();
            SolrDocumentList docs = IndexerQuery.query(query);
            Iterator<SolrDocument> iter = docs.iterator();
            while (iter.hasNext()) {
                SolrDocument doc = iter.next();
                demandsCache.put((String) doc.getFieldValue("code"), doc);

            }
        } catch (SolrServerException | IOException ex) {
            LOGGER.log(Level.SEVERE, null, ex);
        }
    }
    return demandsCache.containsKey(code);
}