安装 Elasticsearch
1:解压下载的安装包 elasticsearch-1.7.2.zip
修改 cluster.name: es(集群状态名字一致)
2:在https://github.com/elasticsearch/elasticsearch-servicewrapper下载该插件后,解压缩。将service目录拷贝到elasticsearch目录的bin目录下。
3: 安装es-head插件
进入elasticsearch/bin目录,输入命令./plugin --install mobz/elasticsearch-head 安装head插件
4:将 Elasticsearch scp 到其他机器
5:启动 Elasticsearch
在linux环境,进入ES目录的bin/service目录,如下图,运行命令sh elasticsearch start 访问地址 http://hadoop1:9200/_plugin/head/
Elasticsearch JavaAPI
添加 Elasticsearch maven 依赖
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.7.2</version>
</dependency>
package test;
import java.io.IOException;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.common.xcontent.XContentFactory;
import entity.User;
/*
* 返回json 数据
*/
public class JsonUtil {
public static String obj2JsonData(User user){
String jsonData = null;
try {
//使用XContentBuilder创建json数据
XContentBuilder jsonBuild = XContentFactory.jsonBuilder();
jsonBuild.startObject()
.field("id",user.getId())
.field("name", user.getName())
.field("pwd",user.getPwd())
.endObject();
jsonData = jsonBuild.string();
System.out.println(jsonData);
} catch (IOException e) {
e.printStackTrace();
}
return jsonData;
}
}
package test;
import java.net.InetSocketAddress;
import java.util.ArrayList;
import java.util.List;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHits;
import entity.User;
public class ElasticsearchTest {
Client client;
/*
* 初始化client
*/
public ElasticsearchTest() {
client = new TransportClient()
.addTransportAddress(new InetSocketTransportAddress("hadoop1",9300));
}
/*
* 添加
*/
public IndexResponse createIndexResponse(String indexname, String type,
String jsondata) {
IndexResponse response = client.prepareIndex(indexname, type)
.setSource(jsondata).execute().actionGet();
return response;
}
/**
* 执行搜索
*
* @param queryBuilder
* @param indexname
* @param type
* @return
*/
public List<User> searcher(QueryBuilder queryBuilder, String indexname,
String type) {
List<User> list = new ArrayList<User>();
SearchResponse searchResponse = client.prepareSearch(indexname)
.setTypes(type).setQuery(queryBuilder).execute().actionGet();
SearchHits hits = searchResponse.getHits();
System.out.println("查询到记录数=" + hits.getTotalHits());
SearchHit[] searchHists = hits.getHits();
if (searchHists.length > 0) {
for (SearchHit hit : searchHists) {
Integer id = (Integer) hit.getSource().get("id");
String name = (String) hit.getSource().get("name");
String function = (String) hit.getSource().get("pwd");
list.add(new User(id, name, function));
}
}
return list;
}
public static void main(String[] args) {
ElasticsearchTest es = new ElasticsearchTest();
// User user = new User();
// user.setId(1);
// user.setName("张三");
// user.setPwd("123");
// String jsondata = JsonUtil.obj2JsonData(user);
String indexname = "indexdemo";
String type = "typedemo";
// es.createIndexResponse(indexname, type, jsondata);
// 查询条件
QueryBuilder queryBuilder = QueryBuilders.termQuery("name", "张");
/*
* QueryBuilder queryBuilder = QueryBuilders.boolQuery()
* .must(QueryBuilders.termQuery("id", 1));
*/
List<User> result = es.searcher(queryBuilder, indexname, type);
for (User us : result) {
System.out.println(us.getName());
}
}
}
分享到:
相关推荐
ElasticSearch学习笔记
Elasticsearch学习笔记 Elasticsearch(以下简称ES)是当前最流行的搜索引擎之一,本文旨在通过对ES的基本操作和查询语法的介绍,帮助读者快速入门和精通ES。 批量操作 ES提供了多种批量操作方式,包括通过GET _...
本篇学习笔记将围绕 Elasticsearch 的基本查询操作展开,包括前置过滤、查询与排序以及统计功能。 #### 二、查询基础 Elasticsearch 提供了多种查询方式,常见的有匹配查询、过滤查询等。其中,过滤查询是一种非常...
ElasticSearch学习笔记1 ElasticSearch是基于Lucene的搜索服务器,它提供了高性能的全文搜索功能,支持开箱即用的集群化扩展。ElasticSearch可以通过标准的REST API或特定于编程语言的客户端库与之交互。 一、什么...
在"elasticsearch学习笔记.pdf"中,你将详细学习这些概念,并通过实际案例来加深理解,包括如何安装配置ES,创建和管理索引,执行搜索,以及进行高级操作如数据导入导出、监控和报警等。这将是你掌握Elasticsearch...
Elasticsearch 学习笔记实用知识库分享知识分享 Elasticsearch 是一个基于 Lucene 库的开源搜索引擎,提供了全文搜索、结构化搜索和分析等功能。本文档将分享 Elasticsearch 的学习笔记,涵盖从基础概念到高级应用...
ElasticSearch学习笔记八(搜索入门)数据脚本
es学习笔记记录一下哈
本篇笔记将深入探讨Elasticsearch中的核心概念以及基本操作。 首先,Elasticsearch 中的 **索引(index)** 类似于传统关系型数据库的“数据库”,它是一个逻辑空间,用于存储具有相同结构的文档。例如,你可以创建一...
这篇学习笔记主要涵盖了几个关键的配置和操作,对于理解和优化Elasticsearch集群至关重要。 首先,我们关注的是**监控 fielddata**。Fielddata 是Elasticsearch在内存中存储字段值以便进行排序和聚合的一种方式。高...
总的来说,这份Elasticsearch笔记是一份详尽的学习资料,涵盖了从基础概念到高级特性的全面内容,适合初学者和进阶者参考学习。通过阅读和实践,读者将能够熟练掌握Elasticsearch的使用,解决实际工作中的各种问题。
(狂神)ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战),包含了小狂神讲的东西,特别适合新手学习,笔记保存下来可以多看看。好记性不如烂笔头哦~,ElasticSearch,简称es,es是一个...
这篇入门学习笔记将引导初学者了解如何安装、配置以及使用Elasticsearch。 首先,让我们从安装开始。要安装Elasticsearch,你可以访问官方网站(https://www.elastic.co/cn/downloads/elasticsearch)下载最新版本...
本笔记主要记录了 Kibana 的常用操作,涵盖了增删改查操作,以及一些重要的 Elasticsearch 概念。以下是详细的知识点说明: ES 基本概念 * Elasticsearch 是一个基于 Lucene 库的搜索引擎,能够提供高效的搜索和...
《Elasticsearch(ES)深度解析与实战应用》 Elasticsearch(ES)是一种基于Lucene的开源全文搜索引擎,以其高效、可扩展性以及实时分析能力,在大数据时代中扮演着重要角色。它不仅是一个搜索引擎,更是一个分布式...
"es:es学习笔记" 这个标题暗示了主题是关于 Elasticsearch (ES) 的学习笔记,Elasticsearch 是一个流行的、开源的全文搜索引擎,基于 Lucene 库,常用于大数据分析和实时搜索。描述中同样强调了 "es:es学习笔记",...