`
gaojingsong
  • 浏览: 1201722 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【java操作Elasticsearch之mapping和aliases】

阅读更多

 

Elasticsearch之创建mapping--字段类型映射,以及别名

 

 

package estest.cn.com.esdemo;

 

import net.sf.json.JSONObject;

 

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.DefaultHttpClient;

import org.apache.http.protocol.HTTP;

import org.apache.http.util.EntityUtils;

import org.elasticsearch.common.xcontent.XContentBuilder;

import org.elasticsearch.common.xcontent.XContentFactory;

 

/**

 

<dependency>

    <groupId>org.elasticsearch</groupId>

    <artifactId>elasticsearch</artifactId>

    <version>2.2.0</version>

</dependency>

    <!-- http://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->

<dependency>

    <groupId>org.apache.httpcomponents</groupId>

    <artifactId>httpclient</artifactId>

    <version>4.5.2</version>

</dependency>

    

    <dependency>

  <groupId>net.sf.json-lib</groupId>

  <artifactId>json-lib</artifactId>

  <version>2.4</version>

  <classifier>jdk15</classifier>

</dependency>

 * 

 */

@SuppressWarnings("deprecation")

public class App {

public static void main(String[] args) throws Exception {

System.out.println("Hello World!");

String url ="http://192.168.1.111:9200/";

 

String json =  createMapping();

doPost(url+"index_users3", JSONObject.fromObject( json));

//

String alias =  addAlias("index_users3","ttest");

doPost(url+"_aliases", alias);

}

 

/**

* post请求

* @param url

* @param json

* @return

*/

 

public static JSONObject doPost(String url, JSONObject json) {

DefaultHttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

JSONObject response = null;

try {

StringEntity s = new StringEntity(json.toString(),HTTP.UTF_8);

 

s.setContentEncoding("UTF-8");

s.setContentType("application/json;charset=UTF-8");// 发送json数据需要设置contentType

post.setEntity(s);

 

HttpResponse res = client.execute(post);

if (res.getStatusLine().getStatusCode() == 200) {

HttpEntity entity = res.getEntity();

String result = EntityUtils.toString(entity,"UTF-8");// 返回json格式:

System.out.println(result);

}

} catch (Exception e) {

throw new RuntimeException(e);

}

return response;

}

 

public static JSONObject doPost(String url, String str) {

DefaultHttpClient client = new DefaultHttpClient();

HttpPost post = new HttpPost(url);

JSONObject response = null;

try {

StringEntity s = new StringEntity(str,HTTP.UTF_8);

post.addHeader("Content-Type", "application/json; charset=UTF-8"); 

post.setEntity(s);

 

HttpResponse res = client.execute(post);

if (res.getStatusLine().getStatusCode() == 200) {

HttpEntity entity = res.getEntity();

String result = EntityUtils.toString(res.getEntity(),"UTF-8");// 返回json格式:

System.out.println(result);

}

} catch (Exception e) {

throw new RuntimeException(e);

}

return response;

}

 

public static String  createMapping() throws Exception {

XContentBuilder builder = XContentFactory.jsonBuilder()

.startObject()

.startObject("settings")

.startObject("index")

.field("number_of_shards").value(2)

.field("number_of_replicas").value(1)

.endObject()

.endObject()

.startObject("mappings")

   .startObject("userinfo")

.startObject("properties")

.startObject("name").field("type", "string").field("store", "yes").endObject()

.startObject("address").field("type", "string").field("index", "not_analyzed").endObject()

.startObject("sal").field("type", "double").endObject()

.startObject("sex").field("type", "boolean").endObject()

.startObject("age").field("type", "integer").endObject()

.startObject("createDate").field("type", "date").endObject()

.endObject() 

.endObject();

System.out.println(builder.string());

return builder.string();

}

 

 

//{"actions":[{"add":{"index":"index_users3","alias":"5"}}]}:

public static String addAlias(String index,String alias) throws Exception {

XContentBuilder builder = XContentFactory.jsonBuilder()

.startObject()

.startArray("actions")

.startObject()

.startObject("add")

.field("alias").value(alias).

 field("index").value(index)

.endObject().endObject()

.endArray().endObject();

 

System.out.println(builder.string());

return builder.string();

}

}

 

 

  • 大小: 18.8 KB
0
2
分享到:
评论

相关推荐

    一款基于Java注解的elasticsearch mapping生成工具,支持ES 5.2.0所有可选参数.zip

    而标题中提到的"一款基于Java注解的elasticsearch mapping生成工具",正是针对这一需求,为开发者提供了一种简洁且高效的方式来创建和管理ES的映射。 **Java注解与Elasticsearch Mapping** Java注解是一种元数据,...

    JAVA实现ElasticSearch的简单实例

    7. **Java REST客户端的使用**:`RestHighLevelClient`是Elasticsearch提供的高级Java客户端,提供了丰富的API用于操作索引、文档、搜索等。创建客户端实例需要提供ES服务器的URL,可以设置连接参数如超时、重试策略...

    JAVA使用ElasticSearch查询in和not in的实现方式

    JAVA使用ElasticSearch查询in和not in的实现方式 Elasticsearch是一个基于Lucene的搜索服务器,提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它是用Java开发的,并作为Apache许可条款下的开放...

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)

    (狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...

    java操作elasticsearch5.x的demo

    Java操作Elasticsearch 5.x的Demo详解 在大数据时代,Elasticsearch作为一个高效、可扩展的全文搜索引擎,被广泛应用于日志分析、实时...希望这个简单的Java操作Elasticsearch 5.x的Demo能帮助你开始这段探索之旅。

    elasticSearch的操作demo

    最后,`es`包可能是Elasticsearch相关的操作接口或抽象类,它们定义了与Elasticsearch交互的方法,如添加、更新、删除文档,以及查询等。例如: ```java public interface ElasticsearchRepository { void save...

    ElasticSearch Java API 中文文档

    标签《ES Java API 中文文档》强调了文档的内容属性,它属于ElasticSearch的一个重要组成部分,即用Java语言进行数据交互和操作的应用程序接口部分。 从部分内容中可以提取出以下知识点: 1. **Transport Client**...

    Java操作ElasticSearch工具类【支持5.0+以上所有版本】

    java操作ElasticSearch的工具类。需要添加依赖: &lt;!-- ElasticSearch依赖 --&gt; &lt;groupId&gt;io.searchbox &lt;artifactId&gt;jest &lt;version&gt;6.3.1 &lt;!-- ...

    Elasticsearch的JAVA操作工具类,包括增删改查的封装

    以上代码片段展示了如何在Java中封装Elasticsearch的基本操作。为了确保线程安全,你可能需要将这些方法放在一个静态工具类中,并使用`try-with-resources`处理`RestHighLevelClient`的关闭。同时,根据实际需求,你...

    基于Java的Elasticsearch数据同步迁移工具设计源码

    本设计源码提供了一个基于Java的Elasticsearch数据同步迁移工具。...该工具支持不同Elasticsearch版本间的数据迁移同步,包括实时增量同步和全量同步,适合用于学习和实践Java技术,以及开发数据同步相关的系统。

    使用Java调用ElasticSearch提供的相关API进行数据搜索完整实例演示

    Java API是与Elasticsearch进行交互的主要方式之一,它提供了丰富的功能来创建、更新、查询和管理索引。 首先,我们需要在项目中引入Elasticsearch的Java客户端库。通常,我们会使用Maven或Gradle作为构建工具,将...

    Java操作Elasticsearch

    Java API是Elasticsearch官方提供的主要客户端,允许开发者直接在Java代码中方便地进行索引、搜索、映射和过滤等操作。 ### 1. **Search(搜索)** 在Java中,使用Elasticsearch进行搜索主要涉及以下步骤: 1. 创建...

    Java做客户端对Elasticsearch服务的增删改查及批量修改操作

    Java做客户端对Elasticsearch服务的增删改查及批量修改操作,代码简洁易懂,思路清晰有注释.详情参考https://blog.csdn.net/linhaiyun_ytdx/article/category/7042758

    Elasticsearch java工具类

    Elasticsearch提供了Java REST客户端,允许开发者直接通过Java代码与ES集群进行交互。这个工具类可能包含了如索引文档、查询、更新和删除文档等基本操作的封装,以及聚合、脚本等高级功能。例如,`IndexRequest`用于...

    基于Elasticsearch Java API的参考手册

    Java API是Elasticsearch官方提供的与Elasticsearch服务器进行交互的主要工具,它使得开发者能够用Java语言便捷地进行索引、搜索、聚合等多种操作。 ### 一、Elasticsearch核心概念 1. **节点(Node)**: Elastic...

    elasticsearch java操作的api实例

    在Java环境中操作Elasticsearch,我们通常会利用官方提供的Java API,这是一个非常全面且强大的工具集,让我们能够方便地进行索引管理、查询、过滤、分组和映射设置等操作。 首先,让我们详细了解如何使用Java API...

    elasticsearch Java代码实现

    首先,让我们从`ESManager.java`开始,这个类通常用于管理Elasticsearch实例,包括连接、配置和操作索引。在Java中,我们通常使用`TransportClient`或者`RestHighLevelClient`与Elasticsearch通信。`TransportClient...

    基于Elasticsearch2.1.1的JavaAPI基本操作代码示例

    在这个基于Elasticsearch 2.1.1的Java API基本操作代码示例中,我们将探讨如何利用Java API进行常见的数据操作,如索引创建、文档插入、查询以及更新。 首先,为了使用Elasticsearch的Java API,我们需要在项目中...

    elasticsearch java api

    **Elasticsearch Java API**是Elasticsearch官方提供的用于与Elasticsearch服务器进行交互的Java客户端库。在Java应用程序中,我们通常会使用这个API来创建、查询、更新和删除索引中的数据。Elasticsearch 2.3版本的...

    es-mapping-generator:基于自定义注释解根据Java实体模型生成elasticsearch的映射配置

    ElasticSearch映射生成器该工具允许在创建索引时为索引生成映射或设置。 使用注释描述定义的映射字段安装二进制文件部署在Maven Central上,您可以将工件导入到您的项目中: &lt; dependency&gt; &lt; groupId&gt;...

Global site tag (gtag.js) - Google Analytics