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

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

Introduction

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

Prototype

public SolrQuery addField(String field) 

Source Link

Usage

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;
        }//from  w ww .j  a v a  2s  . c o m
        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   ww w  .  j  a v a 2s.c o m
        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);/*  w  w  w  . ja  va2  s. c  o  m*/
    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);/*from  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);/*  w w  w .  j a  v a 2 s.com*/
    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 {/*from  ww  w  .  ja v  a  2 s.  co 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 {/*w  w  w .  jav a 2s  . co 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);
}

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

License:Open Source License

public void run() throws Exception {

    readStatus();/*ww  w.  j a v a2  s  .  c  om*/
    if (jobData.getBoolean("full_index", false)) {
        reindex();
    } else {
        if (statusJson.has(LAST_UPDATE)) {
            update(statusJson.getString(LAST_UPDATE));
        } else {
            update(null);
        }
        if (jobData.getBoolean("reindex_offers", false)) {
            removeAllOffers();
            indexAllOffers();
        }
        if (jobData.getBoolean("reindex_demands", false)) {
            removeAllDemands();
            indexAllDemands();
        }
        if (jobData.getBoolean("reindex_wanted", false)) {
            removeAllWanted();
            indexAllWanted();
        }
        if (!"".equals(jobData.getString("identifier", ""))) {
            LOGGER.log(Level.INFO, "----- Reindexing doc {0} ...", jobData.getString("identifier"));

            SolrQuery query = new SolrQuery("id:\"" + jobData.getString("identifier") + "\"");
            query.addField("id,code");
            query.setRows(1000);
            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, jobData.getString("identifier"));
            }

        }
    }
    writeStatus();

}

From source file:de.dlr.knowledgefinder.webapp.webservice.solr.query.AbstractSolrQueryFactory.java

License:Apache License

private SolrQuery createSolrQueryWithQueryString(String query) {
    SolrQuery solrQuery = new SolrQuery();

    String appendQuery = getAppendQuery().trim();
    String qValue = query;//  w ww .  jav a 2 s.  c o m
    if (appendQuery != "" && !appendQuery.equals(qValue)) {
        qValue = appendQuery + " AND " + qValue;
    }
    solrQuery.setQuery(qValue);
    solrQuery.addField(null);

    return solrQuery;
}

From source file:de.dlr.knowledgefinder.webapp.webservice.solr.query.AbstractSolrQueryFactory.java

License:Apache License

private void tryToAddGivenFieldsToSolrQuery(SolrQuery solrQuery, List<String> fieldList) {
    List<String> allowedFields = Arrays.asList(getAllowedFields());
    for (String f : fieldList) {
        f = f.trim();/*ww  w.  j  a  va  2 s.  com*/
        if (allowedFields.contains(f)) {
            solrQuery.addField(f);
        }
    }
}