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

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

Introduction

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

Prototype

public AbstractUpdateRequest setAction(ACTION action, boolean waitFlush, boolean waitSearcher) 

Source Link

Document

Sets appropriate parameters for the given ACTION

Usage

From source file:at.newmedialab.lmf.search.services.indexing.SolrCoreRuntime.java

License:Apache License

/**
 * Clear the index managed by this SolrCoreRuntime.
 *///w w w  . j a va2  s . c o m
public void clear() {
    serverLock.lock();
    try {
        UpdateRequest request = new UpdateRequest();
        request.deleteByQuery("id:[* TO *]");
        request.setAction(ACTION.COMMIT, true, true);

        server.request(request);
    } catch (IOException e) {
        log.error("(" + config.getName() + ") could not clear search index: an I/O Exception occurred", e);
    } catch (SolrServerException e) {
        log.error(
                "(" + config.getName()
                        + ") could not clear search index: a SOLR Exception occurred (server not available?)",
                e);
    } catch (Exception e) {
        log.error("(" + config.getName()
                + ") index could not be cleared: a runtime Exception occurred (server sending invalid response?)",
                e);
    } finally {
        serverLock.unlock();
    }

}

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);//from w  ww  .  j a  va  2  s .  c o  m
    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:com.doculibre.constellio.stats.StatsCompiler.java

License:Open Source License

public synchronized void computeClick(String collectionName, SolrServer indexCompile, SimpleSearch simpleSearch)
        throws SolrServerException, IOException {
    String query = simpleSearch.getLuceneQuery();
    String escapedQuery = escape(query);
    String compileId = "collection_" + collectionName + " id_" + escapedQuery;

    SolrQuery solrQuery = new SolrQuery();
    // Requte Lucene
    solrQuery.setQuery("id:\"" + compileId + "\"");
    // nb rsultats par page
    solrQuery.setRows(15);//from ww w .  j a v a 2 s.c  o m
    // page de dbut
    solrQuery.setStart(0);

    QueryResponse qr = indexCompile.query(solrQuery);
    if (qr.getResults().getNumFound() > 0) {
        SolrDocument sd = qr.getResults().get(0);
        long click = (Long) sd.getFieldValue("click");
        indexCompile.deleteById(escapedQuery);
        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", (Long) sd.getFieldValue("freq"));
        docCompile.addField("recherche", "recherche");
        docCompile.addField("zero", (String) sd.getFieldValue("zero"));
        docCompile.addField("nbres", (String) sd.getFieldValue("nbres"));
        docCompile.addField("click", (click + 1));
        docCompile.addField("clickstr", "notzero");
        docCompile.addField("collection", collectionName);
        UpdateRequest up = new UpdateRequest();
        up.setAction(ACTION.COMMIT, true, true);
        up.add(docCompile);
        up.process(indexCompile);
    }
}

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

License:Open Source License

public synchronized void computeClickUrl(String collectionName, String url, String recordURL,
        SolrServer indexurl, SimpleSearch simpleSearch) throws SolrServerException, IOException {
    String query = simpleSearch.getLuceneQuery();
    String escapedQuery = escape(query);
    String compileId = "url_" + url + " collection_" + collectionName + " id_" + escapedQuery;
    SolrQuery solrQuery = new SolrQuery();
    // Requte Lucene
    solrQuery.setQuery("id:\"" + compileId + "\"");
    // nb rsultats par page
    solrQuery.setRows(15);//from  w  ww.ja  v  a 2s .c o m
    // page de dbut
    solrQuery.setStart(0);
    QueryResponse qr = indexurl.query(solrQuery);
    if (qr.getResults().getNumFound() > 0) {
        SolrDocument sd = qr.getResults().get(0);
        long nbClick = (Long) sd.getFieldValue("nbclick");
        SolrInputDocument doc = new SolrInputDocument();
        doc.addField("id", compileId);
        doc.addField("query", escapedQuery);
        doc.addField("url", url);
        doc.addField("nbclick", nbClick + 1);
        doc.addField("recordURL", recordURL);
        doc.addField("collectionName", collectionName);
        UpdateRequest up = new UpdateRequest();
        up.setAction(ACTION.COMMIT, true, true);
        up.add(doc);
        up.process(indexurl);
    } else {
        SolrInputDocument doc = new SolrInputDocument();
        doc.addField("id", compileId);
        doc.addField("query", escapedQuery);
        doc.addField("url", url);
        doc.addField("nbclick", 0);
        doc.addField("recordURL", recordURL);
        doc.addField("collectionName", collectionName);
        UpdateRequest up = new UpdateRequest();
        up.setAction(ACTION.COMMIT, true, true);
        up.add(doc);
        up.process(indexurl);
    }
}

From source file:com.thinkaurelius.titan.diskstorage.solr.Solr5Index.java

License:Apache License

private UpdateRequest newUpdateRequest() {
    UpdateRequest req = new UpdateRequest();
    req.setAction(UpdateRequest.ACTION.COMMIT, true, true);
    if (waitSearcher) {
        req.setAction(UpdateRequest.ACTION.COMMIT, true, true);
    }/*ww w  .java 2 s .  co m*/
    return req;
}

From source file:de.bitocean.mm.importer.GMailLoader.java

License:Apache License

private static void importMailsFromFolder(Folder f, String label)
        throws MessagingException, LoginException, IOException, SolrServerException {

    System.out.println("**** Import an email folder *** \n" + f.getFullName());

    f.open(Folder.READ_ONLY);/* w ww. ja  v  a2s .co  m*/

    Message[] m2 = f.getMessages();

    for (Message m : m2) {

        System.out.println("[[Mail Label:" + f.getFullName() + "]]        \n# Subject: > " + m.getSubject());

        UUID uid = UUID.randomUUID();
        System.out.println("# UUID:    > " + uid.toString());

        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", uid.toString());
        document.addField("tag", m.getSubject());

        String cont = handleContent(document, m);

        document.addField("answer", cont);

        document.addField("question", m.getSubject());

        document.addField("type", "raw.email");
        document.addField("context", label);

        String author = "MAILIMPORT";
        Address[] from = m.getFrom();
        if (from != null) {
            author = "";
            for (Address a : from) {
                author = author.concat(", " + a.toString());
            }
        }
        document.addField("author", author);

        Date d = m.getReceivedDate();

        DateFormat dfmt1 = new SimpleDateFormat("yyyy-MM-dd");
        DateFormat dfmt2 = new SimpleDateFormat("hh:mm:ss");
        document.addField("timeasked", dfmt1.format(d) + "T" + dfmt2.format(d) + "Z");

        UpdateRequest add = new UpdateRequest();
        add.add(document);
        add.setParam("collection", collection);
        add.process(solr);

    }

    UpdateRequest commit = new UpdateRequest();
    commit.setAction(UpdateRequest.ACTION.COMMIT, true, true);
    commit.setParam("collection", collection);
    commit.process(solr);

}

From source file:fr.xebia.cocktail.CocktailRepository.java

License:Apache License

public void insert(Cocktail cocktail) {
    Preconditions.checkArgument(cocktail.getObjectId() == null, "Given objectId must be null in %s", cocktail);
    try {//from  w w w.j  a v a2 s.  c om
        cocktail.setObjectId(ObjectId.get());

        // SOLR
        SolrInputDocument solrInputDocument = toSolrInputDocument(cocktail);
        UpdateRequest req = new UpdateRequest();
        req.setAction(org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION.COMMIT, false, false);
        req.add(solrInputDocument);
        UpdateResponse solrResponse = req.process(solrServer);
        logger.trace("solr.add for {}: {}", cocktail, solrResponse);

        // MONGODB
        DBObject bson = COCKTAIL_TO_BSON.apply(cocktail);
        WriteResult mongoResult = cocktails.insert(bson, WriteConcern.SAFE);
        logger.trace("mongo.insert for {}: {}", cocktail, mongoResult);
    } catch (Exception e) {
        throw new RuntimeException("Exception updating " + cocktail, e);
    }

}

From source file:fr.xebia.cocktail.CocktailRepository.java

License:Apache License

public void update(Cocktail cocktail) {
    Preconditions.checkNotNull(cocktail.getObjectId(), "Given objectId must not be null in %s", cocktail);
    try {/*www . j av a  2s  .  com*/

        // SOLR
        SolrInputDocument solrInputDocument = toSolrInputDocument(cocktail);
        UpdateRequest req = new UpdateRequest();
        req.setAction(org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION.COMMIT, false, false);
        req.add(solrInputDocument);
        UpdateResponse solrResponse = req.process(solrServer);
        logger.trace("solr.add for {}: {}", cocktail, solrResponse);

        // MONGODB
        DBObject root = CocktailRepository.COCKTAIL_TO_BSON.apply(cocktail);
        WriteResult mongoResult = cocktails.save(root, WriteConcern.SAFE);
        logger.trace("mongo.save for {}: {}", cocktail, mongoResult);
    } catch (Exception e) {
        throw new RuntimeException("Exception updating " + cocktail, e);
    }
}

From source file:jp.aegif.nemaki.tracker.CoreTracker.java

License:Open Source License

/**
 * Build an update request to Solr without file
 *
 * @param content//from   w ww . j  a va2  s  . c  o  m
 * @return
 */
// TODO Unify that of Registration class
private AbstractUpdateRequest buildUpdateRequest(Map<String, Object> map) {
    logger.info("Start buildUpdateRequest");
    UpdateRequest up = new UpdateRequest();
    SolrInputDocument sid = new SolrInputDocument();

    // Set SolrDocument parameters
    Iterator<String> iterator = map.keySet().iterator();
    while (iterator.hasNext()) {
        String key = iterator.next();
        sid.addField(key, map.get(key));
    }

    // Set UpdateRequest
    up.add(sid);
    // Ignored(for schema.xml, ignoring some SolrCell meta fields)
    up.setParam(UNKNOWN_FIELD_PREFIX, "ignored_");

    // Set Solr action parameter
    up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
    logger.info(up.toString());
    return up;
}

From source file:org.apache.beam.sdk.io.solr.SolrIOTestUtils.java

License:Apache License

/** Inserts the given number of test documents into Solr. */
static void insertTestDocuments(String collection, long numDocs, AuthorizedSolrClient client)
        throws IOException {
    List<SolrInputDocument> data = createDocuments(numDocs);
    try {/*from w  w w. j a  va2 s .c  om*/
        UpdateRequest updateRequest = new UpdateRequest();
        updateRequest.setAction(UpdateRequest.ACTION.COMMIT, true, true);
        updateRequest.add(data);
        client.process(collection, updateRequest);
    } catch (SolrServerException e) {
        throw new IOException("Failed to insert test documents to collection", e);
    }
}