// make sure the index existing before putting the mapping
Map map = client.admin().cluster()
.health(new ClusterHealthRequest(indexName)).actionGet()
.getIndices();
// map is always empty!!??
boolean exists = map.containsKey(indexName);
if (!exists) {
client.admin().indices()
.create(new CreateIndexRequest(indexName)).actionGet();
// waitForYellow
client.admin()
.cluster()
.health(new ClusterHealthRequest(indexName)
.waitForYellowStatus()).actionGet();
}
XContentBuilder mapping = XContentFactory.jsonBuilder().startObject()
.startObject("settings").startObject("_source")
.field("enabled", false).endObject()
.startObject("properties")
.startObject("hostname").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("logtype").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("env").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("logpath").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("logfilename").field("type", "string").field("store", "no").field("index","not_analyzed").endObject()
.startObject("timestamp").field("type", "long").field("store", "no").field("index","not_analyzed").endObject()
.startObject("eventbody").field("type", "string").field("store", "no").endObject()
.endObject()
.endObject()
.endObject();
PutMappingRequest putMappingRequest = new PutMappingRequest(
indexName);
putMappingRequest.type(indexName);
putMappingRequest.source(mapping);
PutMappingResponse putMappingResponse = client.admin().indices()
.putMapping(putMappingRequest).actionGet();
putMappingResponse.acknowledged();
PutMappingRequestBuilder pmrb = client.admin().indices()
.preparePutMapping(indexName).setType(indexName);
pmrb.setSource(XContentFactory.jsonBuilder());
long startTime = System.currentTimeMillis();
while ((sCurrentLine = br.readLine()) != null) {
rowkey = indexName + ":" + timeStamp + ":" + timeStamp + ":"
+ ESserver;
bulkRequest.add(client.prepareIndex(indexName, indexName, rowkey)
.setSource(
jsonBuilder().startObject()
.field("hostname", testCaseMetaInfo.getHostName())
.field("logtype", testCaseMetaInfo.getLogType())
.field("env", testCaseMetaInfo.getEnv())
.field("logpath", testCaseMetaInfo.getEnv())
.field("logfilename", testCaseMetaInfo.getLogFileName())
.field("timestamp", timeStamp)
.field("eventbody", sCurrentLine)
.endObject()));
if (i % 100 == 0) {
bulkRequest.execute().actionGet();
bulkRequest = client.prepareBulk();
System.out.println(i);
}
i++;
timeStamp++;
}
分享到:
相关推荐
- 设置环境变量`JAVA_HOME`指向JDK的安装路径,确保Elasticsearch能识别Java运行环境。 3. **启动与管理**: - 使用命令行启动Elasticsearch,进入解压目录执行`bin/elasticsearch.bat`。 - 使用`bin/elastic...
### 分布式搜索Elasticsearch方案研究 - Java API #### 一、与集群交互 Elasticsearch 是一种流行的企业级搜索引擎,广泛应用于日志分析、全文检索等场景。本章节将详细介绍如何通过 Java API 实现应用程序与 ...
其Java API允许开发者直接通过Java代码与Elasticsearch集群交互,实现数据的增删改查、索引管理和集群操作等功能。以下是对Elasticsearch Java API使用的详细介绍: 1. **环境配置**: - JDK:首先确保安装了JDK ...
- 启动Elasticsearch:`bin/elasticsearch`,如果使用Java环境变量,可能还需要配置`JAVA_HOME`。 3. **RESTful API** Elasticsearch基于HTTP的RESTful接口进行操作,便于通过各种编程语言与其交互。常见的API...
最后,`es`包可能是Elasticsearch相关的操作接口或抽象类,它们定义了与Elasticsearch交互的方法,如添加、更新、删除文档,以及查询等。例如: ```java public interface ElasticsearchRepository { void save...
Java API是Elasticsearch官方提供的主要客户端,允许开发者直接在Java代码中方便地进行索引、搜索、映射和过滤等操作。 ### 1. **Search(搜索)** 在Java中,使用Elasticsearch进行搜索主要涉及以下步骤: 1. 创建...
### Elasticsearch数据库的下载、配置与使用案例 #### 一、Elasticsearch数据库的下载与安装 **1.1 下载与解压** - **下载Elasticsearch:** - **官方网站下载:** 访问Elasticsearch官方网站...
### ElasticSearch 入门知识点详解 #### 一、ElasticSearch 概览 **1.1 ElasticSearch 的...此外,通过集成第三方工具如Talend API tester和Elasticsearch-Head,我们还能更加方便地管理和操作ElasticSearch实例。
- 创建索引时,可以使用`PUT /index_name` API,指定映射(mapping)来定义字段的类型和分析器。 - 索引数据使用`POST /index_name/_doc`,JSON格式的数据将被添加到文档中。 8. **查询与分析** - Elasticsearch...
- **Java 安装**: Elasticsearch 需要在 Java 运行环境中运行,因此首先需要安装 Java。 - **Elasticsearch 安装**: 包括直接下载压缩包、使用包管理器等方式。 - **系统服务配置**: 可以将 Elasticsearch 配置为 ...
Elasticsearch使用Java语言编写,并遵循Apache许可协议开源发布,目前已成为企业级搜索领域的首选解决方案之一。 **特性:** - **分布式架构:** 支持多用户并发访问,并可水平扩展以应对更大规模的数据处理需求。...
**Elasticsearch 深度解析** Elasticsearch 是一个基于 Lucene 的开源搜索引擎,以其分布式、实时、可扩展和高可用性而闻名。它不仅仅是一个搜索服务,更是一个数据分析和检索的平台,广泛应用于日志分析、监控、...
在本篇"ElasticSearch第二天1"的学习中,我们将聚焦于使用Java客户端进行Elasticsearch的各种操作,包括创建和删除索引、文档的增删改查、分页查询、高亮查询,以及集成Spring Data ElasticSearch进行操作。...
bboss(Business Basic Operation Support)框架则是针对Elasticsearch设计的一套高效、易用的Java API,它提供了丰富的DSL(Domain Specific Language)操作支持,使得开发者能够更加便捷地与Elasticsearch进行交互...