Package org.elasticsearch.action.bulk

Examples of org.elasticsearch.action.bulk.BulkRequestBuilder


    if (scrollResp.getHits().getTotalHits() > 0) {
      if (isClosed())
        throw new InterruptedException("Interrupted because River is closed");
      scrollResp = esIntegrationComponent.executeESScrollSearchNextRequest(scrollResp);
      BulkRequestBuilder esBulk = esIntegrationComponent.prepareESBulkRequestBuilder();
      while (scrollResp.getHits().getHits().length > 0) {
        for (SearchHit hit : scrollResp.getHits()) {
          logger.debug("Go to delete indexed document for ES document id {}", hit.getId());
          if (documentIndexStructureBuilder.deleteESDocument(esBulk, hit)) {
            indexingInfo.documentsDeleted++;
View Full Code Here


    private class LdapReader implements Runnable {

        public void run() {
           
            BulkRequestBuilder bulkRequest = client.prepareBulk();
           
            while (true) {
                if (closed) {
                    return;
                }

                DirContext ctx = null;
                Properties environment = new Properties();

                try {
                    environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
          if (userDn != null && !"".equals(userDn)) {
                        environment.put(Context.SECURITY_AUTHENTICATION, "simple");
                        environment.put(Context.SECURITY_PRINCIPAL, userDn);
                        environment.put(Context.SECURITY_CREDENTIALS, credentials);
                    } else {
                        environment.put(Context.SECURITY_AUTHENTICATION, "none");
                    }

                    if (ssl) {
                        environment.put(Context.PROVIDER_URL, "ldaps://" + host + ":" + port);
                        environment.put(Context.SECURITY_PROTOCOL, "ssl");
                    } else {
                        environment.put(Context.PROVIDER_URL, "ldap://" + host + ":" + port);
                    }

                    ctx = new InitialDirContext(environment);
                    int count = 0;

                    SearchControls constraints = new SearchControls();
                    if ("object".equalsIgnoreCase(scope)) {
                        constraints.setSearchScope(SearchControls.OBJECT_SCOPE);
                    } else if ("onelevel".equalsIgnoreCase(scope)) {
                        constraints.setSearchScope(SearchControls.ONELEVEL_SCOPE);
                    } else {
                        constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
                    }
                   
                    if (attributes != null && attributes.length > 0) {
                        constraints.setReturningAttributes(attributes);
                    }
                   
                    long start = System.currentTimeMillis();
                    NamingEnumeration<SearchResult> results = ctx.search(baseDn, filter, constraints);
                    logger.debug("LDAP search executed in {} ms", System.currentTimeMillis() - start);
                   
                    while (results != null && results.hasMore()) {
                       
                        SearchResult sr = (SearchResult) results.next();
                       
                        IndexRequest indexRequest = new IndexRequest(indexName);
                       
                        XContentBuilder builder = jsonBuilder();
                        builder.startObject();
                       
                        String dn = sr.getName();
                        logger.debug("Reading ldap object dn [{}]", dn);
                       
                        Attributes ldapAttributes = sr.getAttributes();
                        NamingEnumeration<String> ldapAttributesIds = ldapAttributes.getIDs();
                        while (ldapAttributesIds.hasMoreElements()) {
                            String id = ldapAttributesIds.next();
                            logger.debug("\treading attribute id [{}]", id);
                           
                            List<String> fieldValues = new ArrayList<String>();
                            Attribute attribute = ldapAttributes.get(id);
                            NamingEnumeration<?> values = attribute.getAll();
                            while (values.hasMoreElements()) {
                                Object value = values.next();
                                logger.debug("\t\tvalue: [{}]", value.toString());
                                fieldValues.add(value.toString());
                            }
                            String fieldName = resolveFieldName(id);
                            if(fieldValues.size() > 1){
                                builder.array(fieldName, fieldValues.toArray());
                            } else {
                                if (!"_id".equals(fieldName)) {
                                    builder.field(fieldName, fieldValues.get(0));
                                } else {
                                    indexRequest.id(fieldValues.get(0));
                                }
                            }
                        }

                        builder.endObject();
                       
                        indexRequest.type(typeName).source(builder);
                        bulkRequest.add(indexRequest);
                        count++;
                       
                        if((count % bulkSize) == 0){
                            BulkResponse bulkResponse = bulkRequest.execute().actionGet(bulkTimeout);
                            logger.info("{} objects indexed with ", count, bulkResponse.hasFailures()? "errors" : "success");
                        }                       
                    }
                   
                    if(bulkRequest.numberOfActions() > 0){
                        BulkResponse bulkResponse = bulkRequest.setRefresh(true).execute().actionGet(bulkTimeout);
                        logger.info("{} objects indexed with ", count, bulkResponse.hasFailures()? "errors" : "success");
                    }

                } catch (Exception e) {
                    logger.error("Exception when accessing to LDAP server", e);
View Full Code Here

  public ListenableActionFuture<BulkResponseWrapper> bulkIndex(final Iterable<?> iterable) {
    return executeBulk(new Esi4JOperation<ListenableActionFuture<BulkResponse>>() {

      @Override
      public ListenableActionFuture<BulkResponse> execute(Client client, String indexName, OperationContext helper) {
        BulkRequestBuilder request = client.prepareBulk();

        for (Object o : iterable) {
          TypeMapping mapping = helper.findTypeMapping(o);
          IndexRequestBuilder index = mapping.indexRequest(client, indexName, o);
          if (index != null) {
            request.add(index);
          }
        }

        return request.execute();
      }
    });
  }
View Full Code Here

        bulkIndex(new Esi4JOperation<BulkRequestBuilder>() {

          @Override
          public BulkRequestBuilder execute(Client client, String indexName,
              Esi4JOperation.OperationContext helper) {
            BulkRequestBuilder bulk = client.prepareBulk();
            for (ActionRequestBuilder<?, ?, ?> request : _requests) {
              if (request instanceof IndexRequestBuilder) {
                bulk.add((IndexRequestBuilder) request);
              } else if (request instanceof DeleteRequestBuilder) {
                bulk.add((DeleteRequestBuilder) request);
              } else if (request != null) {
                throw new IllegalArgumentException("unexpected request type "
                    + request.getClass().getName());
              }
View Full Code Here

    return updateRequestBuilder.execute().actionGet();
  }

  @Override
  public void bulkIndex(List<IndexQuery> queries) {
    BulkRequestBuilder bulkRequest = client.prepareBulk();
    for (IndexQuery query : queries) {
      bulkRequest.add(prepareIndex(query));
    }
    BulkResponse bulkResponse = bulkRequest.execute().actionGet();
    if (bulkResponse.hasFailures()) {
      Map<String, String> failedDocuments = new HashMap<String, String>();
      for (BulkItemResponse item : bulkResponse.getItems()) {
        if (item.isFailed())
          failedDocuments.put(item.getId(), item.getFailureMessage());
View Full Code Here

                                .field(__longField1, lValue)
                                .endObject()));
    }

    private void sendBulk() {
        final BulkRequestBuilder bulk = client().prepareBulk();
        for(final IndexRequest req : _bulkBuffer) {
            bulk.add(req);
        }
        bulk.setRefresh(true).execute().actionGet();
        bulk.execute().actionGet();
    }
View Full Code Here

    }

    private void putBulk(final String[] ids, final int[] users, final long[] timestamps) throws Exception {
        final int batchSize = 5000;
        for(int i = 0; i < ids.length; i += batchSize) {
            final BulkRequestBuilder bulk = client().prepareBulk();
            for(int j = 0; j < batchSize; j++) {
                final int idx = i + j;
                if(idx >= ids.length) {
                    bulk.setRefresh(true).execute().actionGet();
                    return;
                }
                bulk.add(new IndexRequest(__index, __type1, ids[idx])
                        .routing(ids[idx])
                        .source(XContentFactory.jsonBuilder()
                                .startObject()
                                .field(__txtField, "Document created by " + users[idx])
                                .field(__userField, users[idx])
                                .field(__tsField, timestamps[idx])
                                .endObject()));
            }
            bulk.execute().actionGet();
        }
        new RefreshRequestBuilder(client().admin().indices()).execute();
    }
View Full Code Here

      if (withComments) {
        ImmutableList<Comment> comments = commentService.getCommentList(msg, true).getList();

        if (!comments.isEmpty()) {
          BulkRequestBuilder bulkRequest = client.prepareBulk();

          for (Comment comment : comments) {
            bulkRequest.add(client.prepareDelete(MESSAGES_INDEX, MESSAGES_TYPE, Integer.toString(comment.getId())));
          }

          executeBulk(bulkRequest);
        }
      }
View Full Code Here

      createIndex();
    }

    logger.info("Indexing comments "+msgUpdate.getMsgids());

    BulkRequestBuilder bulkRequest = client.prepareBulk();

    for (int msgid : msgUpdate.getMsgids()) {
      if (msgid==0) {
        logger.warn("Skipping MSGID=0!!!");
        continue;
      }

      Comment comment = commentService.getById(msgid);

      // комментарии могут быть из разного топика в функция массового удаления
      // возможно для скорости нужен какой-то кеш топиков, т.к. чаще бывает что все
      // комментарии из одного топика
      Topic topic = topicDao.getById(comment.getTopicId());

      if (!isTopicVisible(topic) || comment.isDeleted()) {
        logger.info("Deleting comment " + comment.getId());
        bulkRequest.add(client.prepareDelete(MESSAGES_INDEX, MESSAGES_TYPE, Integer.toString(comment.getId())));
      } else {
        String message = lorCodeService.extractPlainText(msgbaseDao.getMessageText(comment.getId()));
        bulkRequest.add(processComment(topic, comment, message));
      }
    }

    executeBulk(bulkRequest);
  }
View Full Code Here

            .execute()
            .actionGet();
  }

  private void reindexComments(Topic topic, CommentList comments) {
    BulkRequestBuilder bulkRequest = client.prepareBulk();

    for (Comment comment : comments.getList()) {
      if (comment.isDeleted()) {
        bulkRequest.add(client.prepareDelete(MESSAGES_INDEX, MESSAGES_TYPE, Integer.toString(comment.getId())));
      } else {
        String message = lorCodeService.extractPlainText(msgbaseDao.getMessageText(comment.getId()));
        bulkRequest.add(processComment(topic, comment, message));
      }
    }

    executeBulk(bulkRequest);
  }
View Full Code Here

TOP

Related Classes of org.elasticsearch.action.bulk.BulkRequestBuilder

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.