JDK1.8环境下,maven仓库依赖

<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>5.2.2</version>
</dependency><dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>5.2.2</version>
</dependency><dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.9.0</version>
</dependency>

Elasticsearch两种操作模式可以使用

该应用程序可在Elasticsearch集群中扮演更加主动或更加被动的角色。在更加主动的情况下(称为Node Client),应用程序实例将从集群接收请求,确定哪个节点应处理该请求,就像正常节点所做的一样。(应用程序甚至可以托管索引和处理请求。)另一种模式称为Transport Client,它将所有请求都转发到另一个Elasticsearch节点,由后者来确定最终目标。

获取Transport Client

(1)ElasticSearch服务默认端口9300。

(2)Web管理平台端口9200。

(3) 插件使用的端口 9100

@Test
public void getClient() throws UnknownHostException {Settings settings = Settings.builder().put("cluster.name", "my-application").build();//获取客户端对象PreBuiltTransportClient client = new PreBuiltTransportClient(settings);//9100 插件端口 9200web端口 9300 客户端访问端口client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("testnote01"),9300));System.out.println(client.toString());
}

结果

org.elasticsearch.transport.client.PreBuiltTransportClient@1440c311

创建索引和删除索引

package com.zyd;import static org.junit.Assert.assertTrue;import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.transport.Transport;
import org.elasticsearch.transport.client.PreBuiltTransportClient;
import org.junit.Before;
import org.junit.Test;import java.io.PrintStream;
import java.net.InetAddress;
import java.net.UnknownHostException;/*** Unit test for simple App.*/
public class AppTest {TransportClient client;@SuppressWarnings("unchecked")@Beforepublic void getClient() throws UnknownHostException {Settings settings = Settings.builder().put("cluster.name", "my-application").build();//获取客户端对象client = new PreBuiltTransportClient(settings);//9100 插件端口 9200web端口 9300 客户端访问端口client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("testnote01"),9300));System.out.println(client.toString());}//创建索引@Testpublic void createIndex(){//创建索引client.admin().indices().prepareCreate("blog").get();//关闭资源client.close();}/**
浏览器访问 9100端口 显示信息
*///删除索引@Testpublic void deleteIndex(){//删除索引client.admin().indices().prepareDelete("blog").get();//关闭资源client.close();}/**
浏览器访问 9100端口 信息被删除
*/
}

新建文档(源数据JSON串)

当直接在ElasticSearch建立文档对象时,如果索引不存在,默认会自动创建,映射采用默认方式

//创建文档以json形式
@Test
public void createIndexByJson(){//1. 文档准备String json = "{" + "\"id\":\"1\"," + "\"title\":\"基于Lucene的搜索服务器\","+ "\"content\":\"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口\"" + "}";//创建IndexResponse indexResponse = client.prepareIndex("blog", "article", "1").setSource(json).execute().actionGet();//打印返回值System.out.println("索引:"+indexResponse.getIndex());System.out.println("类型:"+indexResponse.getType());System.out.println("id:"+indexResponse.getId());System.out.println("版本号:"+indexResponse.getVersion());System.out.println("结果:"+indexResponse.getResult());client.close();
}

结果

org.elasticsearch.transport.client.PreBuiltTransportClient@1440c311
索引:blog
类型:article
id:1
版本号:1
结果:CREATED

通过插件页面的数据浏览可以看到

创建文档以hashmap

//创建文档以hashmap
@Test
public void createIndexByMap(){HashMap<String, Object> map = new HashMap<>();map.put("id","2");map.put("title","大数据");map.put("name","zyd");IndexResponse reponse = client.prepareIndex("blog", "article", "2").setSource(map).execute().actionGet();//打印返回值System.out.println("索引:"+reponse.getIndex());System.out.println("类型:"+reponse.getType());System.out.println("id:"+reponse.getId());System.out.println("版本号:"+reponse.getVersion());System.out.println("结果:"+reponse.getResult());client.close();
}

结果

org.elasticsearch.transport.client.PreBuiltTransportClient@783ec989
索引:blog
类型:article
id:2
版本号:1
结果:CREATED

通过插件页面的数据浏览可以看到

创建文档以builder方式

//创建文档以builder方式
@Test
public void createIndexByBuilder() throws IOException {XContentBuilder builder = XContentFactory.jsonBuilder().startObject().field("id", "5").field("title", "云计算").field("content", "未来").endObject();IndexResponse response = client.prepareIndex("blog", "article", "3").setSource(builder).execute().actionGet();//打印返回值System.out.println("索引:"+response.getIndex());System.out.println("类型:"+response.getType());System.out.println("id:"+response.getId());System.out.println("版本号:"+response.getVersion());System.out.println("结果:"+response.getResult());client.close();
}

通过插件页面的数据浏览可以看到

ESAPI(一)索引的操作以及数据插入相关推荐

  1. 【MySQL数据库设计与应用(二)】数据库、数据表、记录、索引的操作

    文章目录 1 MySQL 数据库操作 2 MySQL 数据类型 2.1 整数类型 2.2 小数类型 2.3 日期/时间类型 2.4 字符串类型 2.5 复合类型 2.6 二进制类型 3 数据表操作-- ...

  2. pandas重置dataframe的索引(reset_index)、如果索引不匹配dataframe操作时候的问题、重置索引(不设置drop=true)远索引生成新的数据列

    pandas重置dataframe的索引(reset_index).如果索引不匹配dataframe操作时候的问题.重置索引(不设置drop=true)远索引生成新的数据列 目录

  3. 【C 语言】文件操作 ( 学生管理系统 | 插入数据 | 查询数据 | 删除数据 )

    文章目录 一.学生管理系统 1.插入数据 2.查询数据 3.删除数据 二.完整代码 一.学生管理系统 实现一个简易学生管理系统 , 验证文件操作 ; 1.插入数据 从命令行接收数据 , 放入结构体成员 ...

  4. python往mysql存入数据_Python操作mysql之插入数据

    之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 相关mysql视频教程推荐:<mysql教程> 先建库,建表,建用户mysql> ...

  5. .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑

    在使用SqlBulkCopy类操作DataTable批量插入数据,这种操作插入数据的效率很高,就会导致每一条数据在保存的时间基本一样,在我们分页查询添加的数据是,使用数据的添加时间来排序就会出现每页的 ...

  6. python数据导入hive_Python操作HIve,将数据插入到Mysql

    Python操作HIve,将数据插入到Mysql import sys from hive_service import ThriftHive from hive_service.ttypes imp ...

  7. c mysql 插入大量数据_C++操作MySQL大量数据插入效率低下的解决方法

    通常来说C++操作MySQL的时候,往Mysql中插入10000条简单数据,速度非常缓慢,居然要5分钟左右, 而打开事务的话,一秒不到就搞定了! 具体实现代码如下: #include #include ...

  8. ClickHouse 数据插入、更新与删除操作 SQL

    1.1. 数据操作 数据操作语言( DML,Data Manipulation Language ) 用于在数据库表中添加(插入).删除和修改(更新)数据.本节主要介绍ClickHouse中的数据插入 ...

  9. 使用 T-SQL 语句对数据库表进行单个数据插入、成批数据插入、修改和删除数据操作的介绍

    增删改语句的介绍: 一.单个数据插入语句 INSERT INTO 表名 [(属性列 1,属性列 2 - )] VALUES (常量 1 ,常量 2 - ) 说明: ① 插入一个新元组,新元组属性列 1 ...

  10. php操作mysql迅速插入上百万数据

    想要学习mysql存储,双机备份,主从架构的前提是必须要有大量的数据,大量数据插入数据表的速度很慢 超过百万级别的数据就需要几个小时.那么如何在几分钟内插入上百万数据呢? 原理:mysql插入数据库 ...

最新文章

  1. 并发 vs 并行 (Concurrency Is Not Parallelism)
  2. 圆弧周长公式_建筑工程施工,最常用计算公式 (大全)
  3. 4.4. Config file
  4. grread使用例子 lisp_LISP函数(分类)大全
  5. linux 命令博客,Linux命令(一)
  6. python脚本根据cookies自动登录网站_python模拟登录并且保持cookie的方法详解
  7. python实现排列组合公式算法_朴素贝叶斯算法的Python实现
  8. Tomcat爆出高危漏洞
  9. java string对象创建_Java问题解析:到底创建了几个String对象
  10. tomcat、netty以及nodejs的helloworld性能对比
  11. Arthas 实战,助你解决同名类依赖冲突问题
  12. 各国语言(语系)代码表(ZH-TW, ZH-CN,EN-US...) JSON 格式 [繁中/简中/英文格式]
  13. 玩转树莓派——支持XBOX手柄
  14. mysql语句转换为oracle_MyBatis项目实战 快速将MySQL转换成Oracle语句
  15. 解决 win10 桌面 资源管理器未响应
  16. uestc 1903
  17. weka中文使用(一)
  18. python格式jpg转换png(批量处理,深度24,尺寸不变)
  19. 行人重识别(ReID)概述
  20. 从实际出发,改变自己。

热门文章

  1. 系统背景描述_多元化多功能会议室报告厅智能控制系统方案
  2. 基础线性代数知识点总结与回顾(三):向量空间和二次型
  3. 【制作】基于51单片机的蓝牙遥控小车方案
  4. 蒙特卡罗 Monte Carlo 模拟
  5. think-cell 加载项在 Office 出现故障后消失,怎么解决?
  6. git bash批量dos2unix
  7. 学历-GBT 4658-2006
  8. Minecraft HMCL 第三方启动器使用教程
  9. android 反编译 签名,Android反编译及重签名命令
  10. ns3--入门基础概念