/** * Insert a record in the database. Any field/value pairs in the specified * values HashMap will be written into the record with the specified record * key. * * @param table * The name of the table * @param key * The record key of the record to insert. * @param values * A HashMap of field/value pairs to insert in the record * @return Zero on success, a non-zero error code on error. See this class's * description for a discussion of error codes. */ @Override public Status insert(String table, String key, Map<String, ByteIterator> values) { try { final XContentBuilder doc = jsonBuilder().startObject(); for (Entry<String, String> entry : StringByteIterator.getStringMap(values).entrySet()) { doc.field(entry.getKey(), entry.getValue()); } doc.endObject(); client.prepareIndex(indexKey, table, key).setSource(doc).execute().actionGet(); return Status.OK; } catch (Exception e) { e.printStackTrace(); return Status.ERROR; } }
public static void setRiverStatus(Client client, String riverName, Status status) { logger.info("setRiverStatus called with {} - {}", riverName, status); XContentBuilder xb; try { xb = jsonBuilder().startObject().startObject(MongoDBRiver.TYPE).field(MongoDBRiver.STATUS_FIELD, status).endObject() .endObject(); client.prepareIndex("_river", riverName, MongoDBRiver.STATUS_ID).setSource(xb).get(); } catch (IOException ioEx) { logger.error("setRiverStatus failed for river {}", ioEx, riverName); } }
@Override public void execute(Tuple tuple) { try { String index = mapper.getIndex(tuple); String type = mapper.getType(tuple); String id = mapper.getId(tuple); String source = mapper.getSource(tuple); OpType opType = mapper.getOpType(); client.prepareIndex(index, type).setId(id).setSource(source) .setOpType(opType).execute(); collector.ack(tuple); } catch (Exception e) { collector.fail(tuple); } }
private void setMetadata(String id, String value) { esClient.prepareIndex(MetadataIndexDefinition.INDEX_TYPE_METADATA) .setId(id) .setSource(MetadataIndexDefinition.FIELD_VALUE, value) .setRefreshPolicy(REFRESH_IMMEDIATE) .get(); } }
private IndexRequest newIndexRequest(IssueDoc issue) { String projectUuid = issue.projectUuid(); return esClient.prepareIndex(INDEX_TYPE_ISSUE) .setId(issue.key()) .setRouting(projectUuid) .setParent(projectUuid) .setSource(issue.getFields()) .request(); }
@Override protected void prepareIndexRequest(IndexRequestBuilder indexRequest, String indexName, String indexType, Event event) throws IOException { BytesStream contentBuilder = serializer.getContentBuilder(event); indexRequest.setIndex(indexName) .setType(indexType) .setSource(contentBuilder.bytes()); } }
public void testInvalidTargetField() throws Exception { assertAcked(prepareCreate("index1").addMapping("type", "id", "type=integer", "foreign_key", "type=integer")); assertAcked(prepareCreate("index2").addMapping("type", "id", "type=integer", "tag", "type=string")); ensureGreen(); indexRandom(true, client().prepareIndex("index1", "type", "1").setSource("id", "1", "foreign_key", new String[]{"1", "3"}), client().prepareIndex("index1", "type", "2").setSource("id", "2"), client().prepareIndex("index1", "type", "3").setSource("id", "3", "foreign_key", new String[]{"2"}), client().prepareIndex("index1", "type", "4").setSource("id", "4", "foreign_key", new String[]{"1", "4"}), client().prepareIndex("index2", "type", "1").setSource("id", "1", "tag", "aaa"), client().prepareIndex("index2", "type", "2").setSource("id", "2", "tag", "aaa"), client().prepareIndex("index2", "type", "3").setSource("id", "3", "tag", "bbb"), client().prepareIndex("index2", "type", "4").setSource("id", "4", "tag", "ccc") ); // Invalid target field SearchResponse searchResponse = new CoordinateSearchRequestBuilder(client()).setIndices("index1").setQuery( QueryBuilders.filterJoin("invalid_field").indices("index2").types("type").path("id").query( boolQuery().filter(termQuery("tag", "aaa")) ) ).get(); assertHitCount(searchResponse, 0L); }
@Test public void testSimpleFilter() throws Exception { assertAcked(prepareCreate("index1").addMapping("type", "id", "type=integer")); ensureGreen(); indexRandom(true, client().prepareIndex("index1", "type", "1").setSource("id", "1"), client().prepareIndex("index1", "type", "3").setSource("id", "3"), client().prepareIndex("index1", "type", "7").setSource("id", "7")); SearchResponse searchResponse = client().prepareSearch("index1").setQuery( boolQuery().filter(fieldDataTermsQuery("id", new long[] { 1, 2, 4, 8, 10, 7, 6, 11, 5 }, CACHE_KEY)) ).get(); assertHitCount(searchResponse, 2L); }
Settings settings = Settings.settingsBuilder().put("number_of_shards", 1).build(); assertAcked(prepareCreate("index1").setSettings(settings).addMapping("type1", "id", "type=integer", "foreign_key", "type=integer")); assertAcked(prepareCreate("index2").setSettings(settings).addMapping("type2", "id", "type=integer", "tag", "type=string") .addMapping("type3", "id", "type=integer", "tag", "type=string") .addMapping("type4", "id", "type=integer", "tag", "type=string")); client().prepareIndex("index1", "type1", "1").setSource("id", "1", "foreign_key", new String[]{"1", "3"}), client().prepareIndex("index1", "type1", "2").setSource("id", "2", "foreign_key", new String[]{"3"}), client().prepareIndex("index1", "type1", "3").setSource("id", "3", "foreign_key", new String[]{"4"}), client().prepareIndex("index1", "type1", "4").setSource("id", "4", "foreign_key", new String[]{"4", "6"}), client().prepareIndex("index2", "type2", "1").setSource("id", "1", "tag", "aaa"), client().prepareIndex("index2", "type2", "2").setSource("id", "2", "tag", "bbb"), client().prepareIndex("index2", "type3", "1").setSource("id", "3", "tag", "ddd"), client().prepareIndex("index2", "type3", "2").setSource("id", "4", "tag", "aaa"), client().prepareIndex("index2", "type4", "1").setSource("id", "5", "tag", "ccc"), client().prepareIndex("index2", "type4", "2").setSource("id", "6", "tag", "aaa")); boolQuery().filter( QueryBuilders.filterJoin("foreign_key").indices("index2").types("type2", "type4").path("id").query( termQuery("tag", "aaa") ).execute().actionGet();
void initNestedIndexAndPercolation(Client client) throws IOException, ExecutionException, InterruptedException { XContentBuilder mapping = XContentFactory.jsonBuilder(); mapping.startObject().startObject("properties").startObject("companyname").field("type", "string").endObject() .startObject("employee").field("type", "nested").startObject("properties") .startObject("name").field("type", "string").endObject().endObject().endObject().endObject() .endObject(); client.admin().indices().prepareCreate("nestedindex").addMapping("company", mapping).execute().actionGet(); waitForYellowStatus(client); client.prepareIndex("nestedindex", BatchPercolatorService.TYPE_NAME, "Q").setSource(jsonBuilder().startObject() .field("query", QueryBuilders.nestedQuery("employee", QueryBuilders.matchQuery("employee.name", "virginia potts").operator(MatchQueryBuilder.Operator.AND)).scoreMode("avg")).endObject()).get(); client.admin().indices().prepareRefresh().execute().actionGet(); }
IndexResponse r = elasticsearchClient.prepareIndex(indexName, typeName, id).setSource(jsonMap) .setVersion(version == null ? 1 : version.longValue()) .setVersionType(version == null ? VersionType.FORCE : VersionType.EXTERNAL) .execute() .actionGet(); if (version != null) jsonMap.put("_version", version); // to prevent side effects boolean created = r.isCreated(); // true means created, false means updated long duration = Math.max(1, System.currentTimeMillis() - start); long regulator = 0;
public static void populateELServer( String index, String type, String dataFile ) throws Exception { String data = getFileAsString( dataFile ); BulkRequestBuilder bulkRequestBuilder = client.prepareBulk().setRefresh(true); String textStr[] = data.split("\\r\\n|\\n|\\r"); for ( String line : textStr ) { bulkRequestBuilder.add(client.prepareIndex( index, type ).setSource( line )); } BulkResponse response = bulkRequestBuilder.execute().actionGet(); if ( response.hasFailures() ) { throw new RuntimeException( "Error when performing test index's data bulk operation. " + "Index=[" + index + "]" ); } }
@Test public void testSimpleJoinInWrapperQuery() throws Exception { assertAcked(prepareCreate("index1").addMapping("type", "id", "type=string", "foreign_key", "type=string")); assertAcked(prepareCreate("index2").addMapping("type", "id", "type=string", "tag", "type=string")); ensureGreen(); indexRandom(true, client().prepareIndex("index1", "type", "1").setSource("id", "1", "foreign_key", new String[]{"1", "3"}), client().prepareIndex("index1", "type", "2").setSource("id", "2"), client().prepareIndex("index1", "type", "3").setSource("id", "3", "foreign_key", new String[]{"2"}), client().prepareIndex("index1", "type", "4").setSource("id", "4", "foreign_key", new String[]{"1", "4"}), client().prepareIndex("index2", "type", "1").setSource("id", "1", "tag", "aaa"), client().prepareIndex("index2", "type", "2").setSource("id", "2", "tag", "aaa"), client().prepareIndex("index2", "type", "3").setSource("id", "3", "tag", "bbb"), client().prepareIndex("index2", "type", "4").setSource("id", "4", "tag", "ccc") ); String q = QueryBuilders.filterJoin("foreign_key").indices("index2").types("type").path("id").query( boolQuery().filter(termQuery("tag", "aaa")) ).toString(); // Joining index1.foreign_key with index2.id SearchResponse searchResponse = new CoordinateSearchRequestBuilder(client()).setIndices("index1").setQuery( filteredQuery(matchAllQuery(), wrapperQuery(q) ) ).get(); assertHitCount(searchResponse, 3L); assertSearchHits(searchResponse, "1", "3", "4"); }
public void addElement(Element element, String index, String routing, boolean create) { IndexRequestBuilder indexRequest = client.prepareIndex(index, element.label(), element.id().toString()) .setSource(propertiesMap(element)).setRouting(routing).setCreate(create); if(bulkRequest != null) bulkRequest.add(indexRequest); else indexRequest.execute().actionGet(); revision++; }
public void doOperation( final Client client, final BulkRequestBuilder bulkRequest ) { IndexRequestBuilder builder = client.prepareIndex( writeAlias, IndexingUtils.ES_ENTITY_TYPE, documentId ).setSource( data ); bulkRequest.add( builder ); }
@Override public void addEvent(Event event, IndexNameBuilder indexNameBuilder, String indexType, long ttlMs) throws Exception { if (bulkRequestBuilder == null) { bulkRequestBuilder = client.prepareBulk(); } IndexRequestBuilder indexRequestBuilder = null; if (indexRequestBuilderFactory == null) { indexRequestBuilder = client .prepareIndex(indexNameBuilder.getIndexName(event), indexType) .setSource(serializer.getContentBuilder(event).bytes()); } else { indexRequestBuilder = indexRequestBuilderFactory.createIndexRequest( client, indexNameBuilder.getIndexPrefix(event), indexType, event); } if (ttlMs > 0) { indexRequestBuilder.setTTL(ttlMs); } bulkRequestBuilder.add(indexRequestBuilder); }
public void create(PhotonDoc doc) { try { this.bulkRequest.add(this.esClient.prepareIndex("photon", "place").setSource(Utils.convert(doc, this.languages)).setId(String.valueOf(doc.getPlaceId()))); } catch (IOException e) { log.error(String.format("creation of new doc [%s] failed", doc), e); } }
bulkRequestBuilder.add(transportClient .prepareIndex(mapping.get_index(), mapping.get_type(), idVal.toString()) .setSource(esFieldData)); } else { .setQuery(QueryBuilders.termQuery(mapping.getPk(), idVal)) .get(); for (SearchHit hit : response.getHits()) { bulkRequestBuilder.add(transportClient .prepareDelete(mapping.get_index(), mapping.get_type(), hit.getId())); .add(transportClient.prepareIndex(mapping.get_index(), mapping.get_type()) .setSource(esFieldData)); } else {
BulkRequestBuilder bulkRequest = elasticsearchClient.prepareBulk(); for (BulkWriteEntry be: jsonMapList) { if (be.getId() == null) continue; bulkRequest.add( elasticsearchClient.prepareIndex(indexName, be.getType(), be.getId()).setSource(be.getJsonMap()) .setVersion(be.getVersion() == null ? 1 : be.getVersion().longValue()) .setVersionType(be.getVersion() == null ? VersionType.FORCE : VersionType.EXTERNAL)); BulkResponse bulkResponse = bulkRequest.get(); BulkWriteResult result = new BulkWriteResult(); for (BulkItemResponse r: bulkResponse.getItems()) { ActionWriteResponse response = r.getResponse(); if (response instanceof IndexResponse) { if (((IndexResponse) response).isCreated()) result.getCreated().add(id);
@Override public void accept(final SearchHit hit) { final IndexRequest index = client .prepareIndex(hit.getIndex(), hit.getType(), hit.getId()) .setSource(hit.getSourceRef(), JSON) .request(); request.get().add(index); }