ESAPI(一)索引的操作以及数据插入
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(一)索引的操作以及数据插入相关推荐
- 【MySQL数据库设计与应用(二)】数据库、数据表、记录、索引的操作
文章目录 1 MySQL 数据库操作 2 MySQL 数据类型 2.1 整数类型 2.2 小数类型 2.3 日期/时间类型 2.4 字符串类型 2.5 复合类型 2.6 二进制类型 3 数据表操作-- ...
- pandas重置dataframe的索引(reset_index)、如果索引不匹配dataframe操作时候的问题、重置索引(不设置drop=true)远索引生成新的数据列
pandas重置dataframe的索引(reset_index).如果索引不匹配dataframe操作时候的问题.重置索引(不设置drop=true)远索引生成新的数据列 目录
- 【C 语言】文件操作 ( 学生管理系统 | 插入数据 | 查询数据 | 删除数据 )
文章目录 一.学生管理系统 1.插入数据 2.查询数据 3.删除数据 二.完整代码 一.学生管理系统 实现一个简易学生管理系统 , 验证文件操作 ; 1.插入数据 从命令行接收数据 , 放入结构体成员 ...
- python往mysql存入数据_Python操作mysql之插入数据
之前有写过一篇python查询mysql数据的文章,今天写通过python插入数据到mysql数据库. 相关mysql视频教程推荐:<mysql教程> 先建库,建表,建用户mysql> ...
- .net使用SqlBulkCopy类操作DataTable批量插入数据库数据,然后分页查询坑
在使用SqlBulkCopy类操作DataTable批量插入数据,这种操作插入数据的效率很高,就会导致每一条数据在保存的时间基本一样,在我们分页查询添加的数据是,使用数据的添加时间来排序就会出现每页的 ...
- python数据导入hive_Python操作HIve,将数据插入到Mysql
Python操作HIve,将数据插入到Mysql import sys from hive_service import ThriftHive from hive_service.ttypes imp ...
- c mysql 插入大量数据_C++操作MySQL大量数据插入效率低下的解决方法
通常来说C++操作MySQL的时候,往Mysql中插入10000条简单数据,速度非常缓慢,居然要5分钟左右, 而打开事务的话,一秒不到就搞定了! 具体实现代码如下: #include #include ...
- ClickHouse 数据插入、更新与删除操作 SQL
1.1. 数据操作 数据操作语言( DML,Data Manipulation Language ) 用于在数据库表中添加(插入).删除和修改(更新)数据.本节主要介绍ClickHouse中的数据插入 ...
- 使用 T-SQL 语句对数据库表进行单个数据插入、成批数据插入、修改和删除数据操作的介绍
增删改语句的介绍: 一.单个数据插入语句 INSERT INTO 表名 [(属性列 1,属性列 2 - )] VALUES (常量 1 ,常量 2 - ) 说明: ① 插入一个新元组,新元组属性列 1 ...
- php操作mysql迅速插入上百万数据
想要学习mysql存储,双机备份,主从架构的前提是必须要有大量的数据,大量数据插入数据表的速度很慢 超过百万级别的数据就需要几个小时.那么如何在几分钟内插入上百万数据呢? 原理:mysql插入数据库 ...
最新文章
- 并发 vs 并行 (Concurrency Is Not Parallelism)
- 圆弧周长公式_建筑工程施工,最常用计算公式 (大全)
- 4.4. Config file
- grread使用例子 lisp_LISP函数(分类)大全
- linux 命令博客,Linux命令(一)
- python脚本根据cookies自动登录网站_python模拟登录并且保持cookie的方法详解
- python实现排列组合公式算法_朴素贝叶斯算法的Python实现
- Tomcat爆出高危漏洞
- java string对象创建_Java问题解析:到底创建了几个String对象
- tomcat、netty以及nodejs的helloworld性能对比
- Arthas 实战,助你解决同名类依赖冲突问题
- 各国语言(语系)代码表(ZH-TW, ZH-CN,EN-US...) JSON 格式 [繁中/简中/英文格式]
- 玩转树莓派——支持XBOX手柄
- mysql语句转换为oracle_MyBatis项目实战 快速将MySQL转换成Oracle语句
- 解决 win10 桌面 资源管理器未响应
- uestc 1903
- weka中文使用(一)
- python格式jpg转换png(批量处理,深度24,尺寸不变)
- 行人重识别(ReID)概述
- 从实际出发,改变自己。