获取客户端对象

public class App {

    private TransportClient client;

    //获取客户端对象
@Before
public void getClinet() throws UnknownHostException {
Settings settings = Settings.builder().put("cluster.name", "my-application").build(); //获得客户端对象
client = new PreBuiltTransportClient(settings); client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("192.168.1.11"), 9300));
System.out.println(client.toString()); }

## 创建索引

//创建索引
@Test
public void createIndex() {
client.admin().indices().prepareCreate("blog1").get();
client.close();
} //删除索引
@Test
public void deleteIndex() {
client.admin().indices().prepareDelete("blog").get();
client.close();
}

新建文档

//新建文档
@Test
public void createIndexByJson() {
//创建文档内容 String json = "{" + "\"id\":\"1\"," + "\"title\":\"基于Lucene的搜索服务器\","
+ "\"content\":\"它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口\"" + "}"; //创建
IndexResponse response = client.prepareIndex("blog", "article", "1").setSource(json).execute().actionGet();
//打印返回值
System.out.println("索引" + response.getIndex());
System.out.println("类型" + response.getType());
System.out.println("id" + response.getId());
System.out.println("结果" + response.getResult());
client.close();
} //创建文档以hashmap
@Test
public void createIndexBymap() {
HashMap<String, Object> json = new HashMap<String, Object>(); json.put("id", "2");
json.put("title", "hph");
json.put("content", "博客 hph.blog");
IndexResponse response = client.prepareIndex("blog", "article", "2").setSource(json).execute().actionGet();
//打印返回值
System.out.println("索引" + response.getIndex());
System.out.println("类型" + response.getType());
System.out.println("id" + response.getId());
System.out.println("结果" + response.getResult());
client.close();
}
//创建文档以hashmap
@Test
public void createIndexBymap() {
HashMap<String, Object> json = new HashMap<String, Object>(); json.put("id", "2");
json.put("title", "hph");
json.put("content", "博客 hph.blog");
IndexResponse response = client.prepareIndex("blog", "article", "2").setSource(json).execute().actionGet();
//打印返回值
System.out.println("索引" + response.getIndex());
System.out.println("类型" + response.getType());
System.out.println("id" + response.getId());
System.out.println("结果" + response.getResult());
client.close(); } //创建文档已bulder
@Test
public void createIndexbyBulider() throws IOException {
XContentBuilder builder = XContentFactory.jsonBuilder().startObject().field("id", "4").field("title", "博客").field("content", "hphblog.cn").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.getResult());
client.close();
}

查询索引

//单个索引查询
@Test
public void queryIndex() {
//查询
GetResponse response = client.prepareGet("blog", "article", "2").get(); //打印
System.out.println(response.getSourceAsString()); //关闭资源
client.close(); } //多个索引查询
@Test
public void queryMultiIndex() { //查询
MultiGetResponse response = client.prepareMultiGet().add("blog", "article", "3")
.add("blog", "article", "1")
.add("blog", "article", "2").get(); for (MultiGetItemResponse multiGetItemResponse : response) {
GetResponse response1 = multiGetItemResponse.getResponse(); //判断是否存在
if (response1.isExists()) {
System.out.println(response1.getSourceAsString());
}
}
} //更改数据
@Test
public void update() throws ExecutionException, InterruptedException, IOException {
UpdateRequest updateRequest = new UpdateRequest("blog", "article", "2");
updateRequest.doc(XContentFactory.jsonBuilder().startObject().field("id", "2")
.field("title", "hphblog").field("content", "大数据博客学习技术分享").endObject()
); UpdateResponse response = client.update(updateRequest).get(); //打印返回值
System.out.println("索引" + response.getIndex());
System.out.println("类型" + response.getType());
System.out.println("id" + response.getId());
System.out.println("结果" + response.getResult());
client.close(); }

更新文档

//更新文档updaset
@Test
public void upsert() throws IOException, ExecutionException, InterruptedException {
//没有就创建
IndexRequest indexRequest = new IndexRequest("blog", "article", "5");
indexRequest.source(XContentFactory.jsonBuilder().startObject().field("id", "5")
.field("title", "大数据技术分享的学习").field("content", "大数据技术的分享与学习希望和大家多多交流").endObject
());
//有文档内容就更新
UpdateRequest updateRequest = new UpdateRequest("blog", "article", "5");
updateRequest.doc(XContentFactory.jsonBuilder().startObject().field("id", "5")
.field("title", "hphblog").field("content", "技术分享、技术交流、技术学习").endObject()
); updateRequest.upsert(indexRequest); UpdateResponse response = client.update(updateRequest).get(); //打印返回值
System.out.println("索引" + response.getIndex());
System.out.println("类型" + response.getType());
System.out.println("id" + response.getId());
System.out.println("结果" + response.getResult());
client.close(); }

删除文档

//删除文档
@Test
public void delete() {
client.prepareDelete("blog", "article", "5").get();
client.close(); }

查询所有

//查询所有
@Test
public void matchAllquery() {
//1.执行查询
SearchResponse response = client.prepareSearch("blog").setTypes("article").setQuery(QueryBuilders.matchAllQuery()).get(); SearchHits hits = response.getHits(); System.out.println("查询的结果为" + hits.getTotalHits()); Iterator<SearchHit> iterator = hits.iterator();
while (iterator.hasNext()) {
SearchHit next = iterator.next();
System.out.println(next.getSourceAsString());
} client.close();
} //分词查询
@Test
public void query() {
//1.执行查询
SearchResponse response = client.prepareSearch("blog").setTypes("article").setQuery(QueryBuilders.queryStringQuery("学习全文")).get(); SearchHits hits = response.getHits(); System.out.println("查询的结果为" + hits.getTotalHits()); Iterator<SearchHit> iterator = hits.iterator();
while (iterator.hasNext()) {
SearchHit next = iterator.next();
System.out.println(next.getSourceAsString());
} client.close();
}

通配符查询

//通配符查询
@Test
public void wildcardQuery() {
//1.执行查询
SearchResponse response = client.prepareSearch("blog").setTypes("article").setQuery(QueryBuilders.wildcardQuery("content", "分")).get(); SearchHits hits = response.getHits(); System.out.println("查询的结果为" + hits.getTotalHits()); Iterator<SearchHit> iterator = hits.iterator();
while (iterator.hasNext()) {
SearchHit next = iterator.next();
System.out.println(next.getSourceAsString());
} client.close();
}

模糊查询

//模糊查询
@Test
public void fuzzyQuery() {
//1.执行查询
SearchResponse response = client.prepareSearch("blog").setTypes("article").setQuery(QueryBuilders.fuzzyQuery("title", "LuceNe")).get(); SearchHits hits = response.getHits(); System.out.println("查询的结果为" + hits.getTotalHits()); Iterator<SearchHit> iterator = hits.iterator();
while (iterator.hasNext()) {
SearchHit next = iterator.next();
System.out.println(next.getSourceAsString());
} client.close();
} //映射相关的操作
@Test
public void createMapping() throws Exception { // 1设置mapping
XContentBuilder builder = XContentFactory.jsonBuilder()
.startObject()
.startObject("article")
.startObject("properties")
.startObject("id1")
.field("type", "string")
.field("store", "yes")
.endObject()
.startObject("title2")
.field("type", "string")
.field("store", "no")
.endObject()
.startObject("content")
.field("type", "string")
.field("store", "yes")
.endObject()
.endObject()
.endObject()
.endObject();

添加mapping

// 2 添加mapping
PutMappingRequest mapping = Requests.putMappingRequest("blog1").type("article").source(builder); client.admin().indices().putMapping(mapping).get(); // 3 关闭资源
client.close();
}

原文:http://hphblog.cn/2018/12/16/Elasticsearch%E7%9A%84JavaAPI/

Elasticsearch的JavaAPI的更多相关文章

  1. Elasticsearch的javaAPI之percolator

    Elasticsearch的javaAPI之percolator percolator同意一个在index中注冊queries,然后发送包括doc的请求,返回得到在index中注冊过的而且匹配doc的 ...

  2. elasticsearch的javaAPI之query

    elasticsearch的javaAPI之query API the Search API同意运行一个搜索查询,返回一个与查询匹配的结果(hits). 它能够在跨一个或多个index上运行, 或者一 ...

  3. Elasticsearch的javaAPI之get,delete,bulk

    Elsasticsearch的javaAPI之get get API同意依据其id获得指定index中的基于json document.以下的样例得到一个JSON document(index为twi ...

  4. Elasticsearch的javaAPI之query dsl-queries

    Elasticsearch的javaAPI之query dsl-queries 和rest query dsl一样,elasticsearch提供了一个完整的Java query dsl. 查询建造者 ...

  5. elasticsearch的javaAPI之index

    Index API 原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/index_.html ...

  6. ElasticSearch的javaAPI之Client

    翻译的原文:http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/client.html#node-c ...

  7. Elasticsearch JavaApi

    官网JavaApi地址:https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/java-search.html 博 ...

  8. ElasticSearch的基本用法与集群搭建

    一.简介 ElasticSearch和Solr都是基于Lucene的搜索引擎,不过ElasticSearch天生支持分布式,而Solr是4.0版本后的SolrCloud才是分布式版本,Solr的分布式 ...

  9. ElasticSearch Java api 详解_V1.0

    /×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...

随机推荐

  1. webpack常用配置

    webpack --help或webpack -h 列出命令行所有可用的配置选项 webpack --config example.config.js 指定其他的配置文件.配置默认文件为webpack ...

  2. Zabbix-2.4-安装-4

    Zabbix api 对于以上两种方式,有些人都不选,倾向于使用第三种:使用zabbix api加上这个监控在把这台机器删除了,然后discovery和自动注册的都关闭了再换一种方式把它加进去,zab ...

  3. JavaScript 隐式类型转换之:加号+

    加号+,有些情况下,它是算术加号,有些情况下,是字符串连接符号 如果字符串和数字相加,JavaScript会自动把数字转换成字符,不管数字在前还是字符串在前 "2" + 3; // ...

  4. apache HTML5 History 模式 配置

    说明 使用的  Apache/2.4.6 版本. 文档这么写的: 但是 没说  IfModule 放在哪里 . httpd.conf  里面有大量的  IfModule . 这样的.但是实测 无效.无 ...

  5. Hadoop HDFS 文件块大小

    HDFS 文件块大小 HDFS中的文件在物理上是分块存储(block),块的大小可以通过配置参数( dfs.blocksize)来规定,默认大小在hadoop2.x版本中是128M,老版本中是64M ...

  6. PHP优化思路

    想起来记录一下自己对PHP的优化思路 针对Nginx和 PHP-FPM进行优化 首先应该分为代码层面.配置层面.架构层面 代码层面 参见了https://segmentfault.com/a/1190 ...

  7. Reporting Services报表常用的URL参数

    http://blog.sina.com.cn/s/blog_5ef7acf5010118a5.html Reporting Services报表常用的URL参数 (2012-03-01 20:57: ...

  8. NDK学习笔记(二)

    花了点时间把pixeliop的部分看完了,拿到开发文档提供的案例稍事修改,把画面左半边压暗. 这个案例重点在于理清pixel_engine()函数中的坐标与scanline的关系. y代表当前正在调用 ...

  9. elasticsearch mysql logstash 同步 简单配置【环境centos7 elasticsearch 6.0 mysql 5.7 logstash 6.0】

    插件:logstash-input-jdbc 安装插件logstash-input-jdbc 1.安装 gem   yum install gem 2.替换国内的镜像   gem sources -- ...

  10. Docker镜像构建上下文(Context)

    镜像构建上下文(Context) Dicker在构建镜像时,如果注意,会看到 docker build 命令最后有一个 ... 表示当前目录,而 Dockerfile 就在当前目录,因此不少初学者以为 ...