Example usage for org.apache.solr.client.solrj.request UpdateRequest clear

List of usage examples for org.apache.solr.client.solrj.request UpdateRequest clear

Introduction

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

Prototype

public void clear() 

Source Link

Document

clear the pending documents and delete commands

Usage

From source file:com.doculibre.constellio.stats.StatsCompiler.java

License:Open Source License

public synchronized void saveStats(SimpleSearch simpleSearch, SolrServer indexJournal, SolrServer indexCompile,
        QueryResponse res) throws SolrServerException, IOException {
    String collectionName = simpleSearch.getCollectionName();
    String luceneQuery = simpleSearch.getLuceneQuery();

    GregorianCalendar calendar = new GregorianCalendar();
    Date time = new Date();
    calendar.setTime(time);/* w ww  .  j ava2 s  . com*/
    String query = luceneQuery;
    String escapedQuery = escape(query);
    long nbRes = res.getResults().getNumFound();
    long qTime = res.getQTime();
    String desplayDate = time.toString();
    String searchDate = format(time);
    String queryWithParams = simpleSearch.toSimpleParams().toString();

    SolrInputDocument doc = new SolrInputDocument();
    doc.addField("id", desplayDate + query);
    doc.addField("query", query);
    doc.addField("queryWithParams", queryWithParams);
    doc.addField("nbres", "" + nbRes);
    doc.addField("qtime", "" + qTime);
    doc.addField("dateaffiche", desplayDate);
    doc.addField("date", searchDate);
    doc.addField("recherche", "recherche");
    doc.addField("collection", collectionName);

    UpdateRequest up = new UpdateRequest();
    up.setAction(ACTION.COMMIT, true, true);
    up.add(doc);

    up.process(indexJournal);

    String compileId = "collection_" + collectionName + " id_" + escapedQuery;
    SolrQuery solrQuery = new SolrQuery();
    // Requte Lucene
    solrQuery.setQuery("id:\"" + compileId + "\"");
    // nb rsultats par page
    solrQuery.setRows(15);
    // page de dbut
    solrQuery.setStart(0);
    QueryResponse qr = indexCompile.query(solrQuery);
    if (qr.getResults().getNumFound() > 0) {
        SolrDocument sd = qr.getResults().get(0);
        long freq = (Long) sd.getFieldValue("freq");
        long click = (Long) sd.getFieldValue("click");
        // indexCompile.deleteById(query);
        SolrInputDocument docCompile = new SolrInputDocument();
        docCompile.addField("id", compileId);
        docCompile.addField("query", query);
        if (!((String) sd.getFieldValue("nbres")).equals("0")) {
            ConstellioSpringUtils.getAutocompleteServices().onQueryAdd(docCompile, query);
        }
        docCompile.addField("freq", freq + 1);
        docCompile.addField("nbres", "" + nbRes);
        docCompile.addField("recherche", "recherche");
        docCompile.addField("collection", collectionName);
        if (nbRes == 0) {
            docCompile.addField("zero", "true");
        } else {
            docCompile.addField("zero", "false");
        }
        docCompile.addField("click", click);
        if (click == 0) {
            docCompile.addField("clickstr", "zero");
        } else {
            docCompile.addField("clickstr", "notzero");
        }
        up.clear();
        up.setAction(ACTION.COMMIT, true, true);
        up.add(docCompile);

        up.process(indexCompile);
    } else {
        SolrInputDocument docCompile = new SolrInputDocument();
        docCompile.addField("id", compileId);
        docCompile.addField("query", query);
        if (nbRes != 0) {
            ConstellioSpringUtils.getAutocompleteServices().onQueryAdd(docCompile, query);
        }
        docCompile.addField("freq", 1);
        docCompile.addField("recherche", "recherche");
        docCompile.addField("collection", collectionName);
        docCompile.addField("nbres", "" + nbRes);
        if (nbRes == 0) {
            docCompile.addField("zero", "true");
        } else {
            docCompile.addField("zero", "false");
        }
        docCompile.addField("click", 0);
        docCompile.addField("clickstr", "zero");
        up.clear();
        up.setAction(ACTION.COMMIT, true, true);
        up.add(docCompile);

        up.process(indexCompile);
    }
}

From source file:org.teiid.translator.solr.SolrUpdateExecution.java

License:Open Source License

private void performInsert(Insert insert) throws TranslatorException {
    // build insert         
    List<ColumnReference> columns = insert.getColumns();
    if (insert.getParameterValues() == null) {
        final UpdateRequest request = new UpdateRequest();
        SolrInputDocument doc = new SolrInputDocument();
        List<Expression> values = ((ExpressionValueSource) insert.getValueSource()).getValues();
        for (int i = 0; i < columns.size(); i++) {
            String columnName = SolrSQLHierarchyVistor.getColumnName(columns.get(i));
            Object value = values.get(i);
            if (value instanceof Literal) {
                doc.addField(columnName, ((Literal) value).getValue());
            } else {
                throw new TranslatorException(SolrPlugin.Event.TEIID20002,
                        SolrPlugin.Util.gs(SolrPlugin.Event.TEIID20002));
            }//from   w  ww .ja va2  s. c  om
        }
        this.updateCount++;
        request.add(doc);

        // check if the row already exists
        Select q = buildSelectQuery(insert);
        SolrQueryExecution query = new SolrQueryExecution(ef, q, this.executionContext, this.metadata,
                this.connection);
        query.execute();
        query.walkDocuments(new SolrDocumentCallback() {
            @Override
            public void walk(SolrDocument doc) {
                request.clear();
            }
        });

        if (request.getDocuments().isEmpty()) {
            throw new TranslatorException(SolrPlugin.Event.TEIID20007,
                    SolrPlugin.Util.gs(SolrPlugin.Event.TEIID20007));
        }

        // write the mutation
        UpdateResponse response = this.connection.update(request);
        if (response.getStatus() != 0) {
            throw new TranslatorException(SolrPlugin.Event.TEIID20003,
                    SolrPlugin.Util.gs(SolrPlugin.Event.TEIID20003, response.getStatus()));
        }
    } else {
        UpdateRequest request = new UpdateRequest();
        int batchSize = 1024;
        // bulk insert; should help 
        Iterator<? extends List<?>> args = insert.getParameterValues();
        while (args.hasNext()) {
            List<?> arg = args.next();
            SolrInputDocument doc = new SolrInputDocument();
            for (int i = 0; i < columns.size(); i++) {
                String columnName = SolrSQLHierarchyVistor.getColumnName(columns.get(i));
                doc.addField(columnName, arg.get(i));
            }
            this.updateCount++;
            request.add(doc);

            if ((this.updateCount % batchSize) == 0) {
                UpdateResponse response = this.connection.update(request);
                if (response.getStatus() != 0) {
                    throw new TranslatorException(SolrPlugin.Event.TEIID20003,
                            SolrPlugin.Util.gs(SolrPlugin.Event.TEIID20003, response.getStatus()));
                }
                request = new UpdateRequest();
            }
        }
        if (request.getDocuments() != null && !request.getDocuments().isEmpty()) {
            // write the mutation
            UpdateResponse response = this.connection.update(request);
            if (response.getStatus() != 0) {
                throw new TranslatorException(SolrPlugin.Event.TEIID20003,
                        SolrPlugin.Util.gs(SolrPlugin.Event.TEIID20003, response.getStatus()));
            }
        }
    }
}