elasticsearch之入门hello(java)一

1.书写pom.xml文件

      <dependencies>
		<dependency>
			<groupId>org.elasticsearch</groupId>
			<artifactId>elasticsearch</artifactId>
			<version>2.4.0</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>fastjson</artifactId>
			<version>1.1.37</version>
		</dependency>
	</dependencies>

2.创建一个文档

@Test   //创建一个文档
	public void test01() throws Exception {
		// 创建连接elasticsearch服务器对象
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		// 描述json对象
		XContentBuilder xContentBuilder = XContentFactory
				.jsonBuilder()
				.startObject()
				.field("id", 1)
				.field("content",
						"QQ音乐是腾讯公司推出的一款网络音乐服务产品,海量音乐在线试听、新歌热歌在线首发、歌词翻译、手机铃声下载、高品质无损音乐试听、海量无损曲库、正版音乐下载、空间")
				.field("title", "QQ音乐-千万正版音乐海量无损曲库新歌热歌天天畅听的高").endObject();
		client.prepareIndex("jk1", "article", "1").setSource(xContentBuilder)
				.get();
		client.close();

	}

  测试:

创建成功

检索数据(全文)

@Test//对全文进行搜索
	public void test02() throws Exception{
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		//搜索数据
		SearchResponse response = client.prepareSearch("jk1").setTypes("article").setQuery(QueryBuilders.matchAllQuery()).get();
		//获取命中次数
		SearchHits hits = response.getHits();
		System.out.println("命中的次数为:"+hits.getTotalHits());
		for (Iterator iterator = hits.iterator(); iterator.hasNext();) {
			SearchHit searchHit = (SearchHit) iterator.next();
			System.out.println(searchHit.getSourceAsString());
		}
	}

  

检索数据(字段检索)  会对需要查询的词进行分词的

@Test  //对所有字段进行分词查询
	public void test03() throws Exception{
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		//搜索数据
		SearchResponse response = client.prepareSearch("jk1").setTypes("article").setQuery(QueryBuilders.queryStringQuery("QQ腾讯")).get();
		//获取命中次数
		SearchHits hits = response.getHits();
		System.out.println("tes3t命中的次数为:"+hits.getTotalHits());
		for (Iterator iterator = hits.iterator(); iterator.hasNext();) {
			SearchHit searchHit = (SearchHit) iterator.next();
			System.out.println(searchHit.getSourceAsString());

		}
	}

 查询结果

 检索数据(模糊查询)  不会对需要查询的词条进行重新分词

@Test  //模糊查询
	public void test04() throws Exception{
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		//搜索数据
		SearchResponse response = client.prepareSearch("jk1").setTypes("article").setQuery(QueryBuilders.wildcardQuery("content", "*QQ*")).get();
		//获取命中次数
		SearchHits hits = response.getHits();
		System.out.println("命中的次数为:"+hits.getTotalHits());
		for (Iterator iterator = hits.iterator(); iterator.hasNext();) {
			SearchHit searchHit = (SearchHit) iterator.next();
			System.out.println(searchHit.getSourceAsString());

		}
	}

  查询结果:命中的次数为:0

创建索引

@Test
	// 创建索引
	public void test01() throws IOException {
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		client.admin().indices().prepareCreate("jk2").get();

	}

 删除索引

@Test
	// 删除索引
	public void test02() throws IOException {
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		client.admin().indices().prepareDelete("jk2").get();
	}

  创建映射

@Test
	// 映射文件 的操作
	public void test03() throws Exception {
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		// 描述json对象 创建连接搜索服务器对象
		XContentBuilder xContentBuilder = XContentFactory.jsonBuilder()
				.startObject().startObject("article").startObject("properties")
				.startObject("id").field("type", "String")
				.field("store", "yes").endObject().startObject("title")
				.field("type", "string").field("store", "yes")
				.field("analyzer", "ik").endObject().startObject("content")
				.field("type", "string").field("store", "yes")
				.field("analyzer", "ik").endObject().endObject().endObject()
				.endObject();
		PutMappingRequest mappingRequest = Requests.putMappingRequest("jk2")
				.type("article").source(xContentBuilder);
		client.admin().indices().putMapping(mappingRequest).get();
		// 关闭连接
		client.close();
	}

  文档的操作

@Test
	// 映射文件 的操作
	public void test04() throws Exception {
		Client client = TransportClient
				.builder()
				.build()
				.addTransportAddress(
						new InetSocketTransportAddress(InetAddress
								.getByName("127.0.0.1"), 9300));
		// 描述json 数据
		/*
		 * {id:xxx, title:xxx, content:xxx}
		 */
		Article article = new Article();
		article.setId("2");
		article.setTitle("搜索工作其实很henbu快乐");
		article.setContent("我们希望我们的搜索解决方案要快,我们希望有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP的索引数据,我们希望我们的搜索服务器始终可用,我们希望能够一台开始并扩展到数百,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。Elasticsearch旨在解决所有这些问题和更多的问题。");

		String jsonString = JSON.toJSONString(article);
		// 建立文档
		client.prepareIndex("jk2", "article", article.getId().toString())
				.setSource(jsonString).get();
		//修改文档
//		client.prepareUpdate("jk2", "article", article.getId().toString()).setDoc(jsonString).get();
//		client.update(new UpdateRequest("jk2", "article", article.getId().toString()).doc(jsonString)).get();

		//删除文档
//		client.prepareDelete("jk2", "article", article.getId().toString()).get();
	//	client.delete(new DeleteRequest("jk2", "article", article.getId().toString())).get();
		// 关闭连接
		client.close();
	}

  

原文地址:https://www.cnblogs.com/fjkgrbk/p/elasticsearch_java.html

时间: 2024-10-28 07:28:22

elasticsearch之入门hello(java)一的相关文章

第五届蓝桥杯练习题 - 入门练习Java解题代码

>>入门训练 圆的面积 时间限制:1.0s   内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 给定圆的半径r,求圆的面积. 输入格式 输入包含一个整数r,表示圆的半径. 输出格式 输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积. 说明:在本题中,输入是一个整数,但是输出是一个实数. 对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误. 实数输出的问题

RPC学习----Thrift快速入门和Java简单示例

一.什么是RPC? RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据.在OSI网络通信模型中,RPC跨越了传输层和应用层.RPC使得开发包括网络分布式多程序在内的应用程序更加容易. 二.什么是Thrift? thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和

webservice的Axis2入门教程java版

本文转自百度文库 Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物.Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring.JSON等技术.这些都将在后面的系列教程中讲解.在本文中主要介绍了如何使用Axis2开发一个不需要任何配置文件的WebService,并在客户端使用Java和C#调用这个WebService. 一.Axis2的下载和安装 读者可以从如下的网址下载Axis2的最新版本:

转:ElasticSearch 简单入门

原文来自于:http://www.oschina.net/translate/elasticsearch-getting-started?cmp 教程样例 我们将要部署一个非常简单的应用--在一个部门里的雇员--这样我们可以把注意力放在功能而不是氧立得复杂性上.总而言之,这篇博文是为了帮助人们开始ElasticSearch入门. 1)现在打开你的cygwin窗口并且键入命令 curl -XPUT 'http://localhost:9200/dept/employee/32' -d '{ "em

Thrift入门及Java实例演示&lt;转载备用&gt;

Thrift入门及Java实例演示 作者: Michael 日期: 2012 年 6 月 14 日 •概述 •下载配置 •基本概念 1.数据类型 2.服务端编码基本步骤 3.客户端编码基本步骤 4.数据传输协议 •实例演示(java) 1. thrift生成代码 2. 实现接口Iface 3.TSimpleServer服务模型 4.TThreadPoolServer 服务模型 5.TNonblockingServer 服务模型 6.THsHaServer服务模型 7.异步客户端 [一].概述 T

零基础入门学习java,应该如何快速打好Java基础?

零基础入门学习java,应该如何快速打好Java基础?从大学到现在,我使用Java已经将近20年,日常也带实习生,还在公司内部做training,所以可以分享下我的经验,希望对你有用. 创一个小群,供大家学习交流聊天如果有对学java方面有什么疑惑问题的,或者有什么想说的想聊的大家可以一起交流学习一起进步呀.也希望大家对学java能够持之以恒java爱好群,如果你想要学好java最好加入一个组织,这样大家学习的话就比较方便,还能够共同交流和分享资料,给你推荐一个学习的组织:快乐学习java组织

我整理的一些不错的Java学习书籍和学习教程,送给正在入门学习Java的你!

书籍推荐: 1. Effective Java 3rd Edition 如果你之前都没读过这本书,那么它绝对是你要阅读的第一本书,这个版本按说很早就应该出版了,此版本涵盖了JDK 7.8 和 9 的新特性事实上,我在 2018 年 1 月份就已经入手这本书了,并且花了一周左右的时间来阅读,我会在阅读过程中,寻找新的知识点,特别是关于 Java 8 和 Java 9 的.我从这本书中很好的理解了 Java 的模块化,它也帮我理清了之前对于 Java 8 特性的一些误解.2. Modern Java

elasticsearch 官方入门 及 API

https://www.elastic.co/guide/en/elasticsearch/reference/current/_basic_concepts.html 入门地址 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方

Elasticsearch快速入门案例

写在前面的话:读书破万卷,编码如有神-------------------------------------------------------------------- 参考内容: <Elasticsearch顶尖高手系列-快速入门篇>,中华石杉 -------------------------------------------------------------------- 主要内容包括: es的document数据格式和数据库的关系型数据格式的区别 简单的集群管理 电商网站商品管