cygwin elasticsearch java包需要安装哪些包

ElasticSearch 2.3.3 集群安装
1.版本说明
JDK:java version "1.8.0_65"
ES:elasticsearch-2.3.32.下载地址 ES:https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/zip/elasticsearch/2.3.3/elasticsearch-2.3.3.zip ES-Head:http://mobz.github.io/elasticsearch-head/ ES-Kopf:/lmenezes/elasticsearch-kopf3.安装ES 1.解压zip包 unzip elasticsearch-2.3.3.zipmv elasticsearch-2.3.3 elasticsearch 2.创建ES用户 useradd espassed eschown -R es.es elasticsearch 注意:2.3.3版本不允许用root用户执行 3.安装Head和Kopf插件 mkdir elasticsearch/plugins/headmkdir elasticsearch/plugins/kopf 将git上下载的zip解压,然后将解压后的文件夹内所有的文件copy到上面提到的目录 4.修改ES配置文件 在启动文件中加入如下配置配置Open文件数和内存 (bin/elasticsearch) ES_HEAP_SIZE=4gMAX_OPEN_FILES=65535 进入config下修改elasticsearch.yml 主要修改以下参数: #集群名称cluster.name: map-application/#节点名称node.name: datanode1#数据存放地址path.data: /home/data/es/data#log存放地址path.logs: /home/data/es/logs#网络IPnetwork.host: 10.30.20.25#节点端口http.port: 9200#自动检索可用节点discovery.zen.ping.unicast.hosts: ["namenode","datanode1","datanode2"] 5.运行 nohup bin/elasticsearch > nohup.txt & PS : 其他节点修改配置即可 结果如下:
访问http://10.30.20.25:9200/查看节点信息
6.Head和Kopf插件页面 访问http://10.30.20.25:9200/_plugin/head/ 访问http://10.30.20.25:9200/_plugin/kopf/ 显示如下:
最新教程周点击榜
微信扫一扫1056人阅读
java(14)
我写的一个工具类,可根据自身项目情况,做修改
import java.io.IOE
import java.net.InetA
import java.net.UnknownHostE
import java.util.ArrayL
import java.util.L
import java.util.M
import java.util.concurrent.ExecutionE
import org.elasticsearch.action.bulk.BulkRequestB
import org.elasticsearch.action.bulk.BulkR
import org.elasticsearch.action.delete.DeleteR
import org.elasticsearch.action.get.GetR
import org.elasticsearch.action.get.MultiGetItemR
import org.elasticsearch.action.get.MultiGetR
import org.elasticsearch.action.index.IndexR
import org.elasticsearch.action.search.SearchRequestB
import org.elasticsearch.action.search.SearchR
import org.elasticsearch.action.search.SearchT
import org.elasticsearch.action.update.UpdateR
import org.elasticsearch.client.C
import org.elasticsearch.client.transport.TransportC
import mon.text.T
import mon.transport.InetSocketTransportA
import mon.xcontent.XContentB
import mon.xcontent.XContentF
import org.elasticsearch.index.query.BoolQueryB
import org.elasticsearch.index.query.QueryB
import org.elasticsearch.index.query.QueryB
import org.elasticsearch.search.SearchH
import org.elasticsearch.search.SearchH
import org.elasticsearch.search.highlight.HighlightF
import org.elasticsearch.search.sort.SortB
import org.elasticsearch.search.sort.SortB
import org.elasticsearch.search.sort.SortO
import org.utils.StringU
import net.sf.json.JSONO
whx 下午6:52:53
elasticsearch的java工具类
public class ElasticsearchTools {
private static String ip = "localhost";
private static int port = 9300;
*: addIndex
单个索引增加
要增加的数据
索引,类似数据库
类型,类似表
public static void addDocument(JSONObject object, String index, String type, String id) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
IndexResponse response = client.prepareIndex(index, type, id).setSource(object).get();
} catch (UnknownHostException e) {
e.printStackTrace();
*: getIndex
*: TODO 获取某条信息
* Map&String,Object&
public static Map&String, Object& getDocument(String index, String type, String id) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
GetResponse response = client.prepareGet(index, type, id).get();
Map&String, Object& map = response.getSource();
} catch (UnknownHostException e) {
e.printStackTrace();
return null;
*: delDocument
*: TODO 删除某条信息
public static void delDocument(String index, String type, String id) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
DeleteResponse response = client.prepareDelete(index, type, id).get();
} catch (UnknownHostException e) {
e.printStackTrace();
*: delDocument
*: TODO 更新某条信息 ,如果改动很多,直接用新增的也可以,只要id相同即可
public static void updateDocument(String index, String type, String id, String key, String value) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
UpdateRequest updateRequest = new UpdateRequest(index, type, id);
updateRequest.doc(XContentFactory.jsonBuilder().startObject().field(key, value).endObject());
client.update(updateRequest).get();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
*: getDocuments
*: TODO 通过多个id,去查询一个list,暂时没有太大的用处 ,需要的话 请自己修改入参 调整
* List&Map&String,Object&&
public static List&Map&String, Object&& getDocuments(String index, String type, String id1, String id2) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
MultiGetResponse multiGetItemResponses = client.prepareMultiGet().add(index, type, id1, id2).get();
List&Map&String, Object&& lists = new ArrayList&Map&String, Object&&();
for (MultiGetItemResponse itemResponse : multiGetItemResponses) {
GetResponse response = itemResponse.getResponse();
if (response.isExists()) {
lists.add(response.getSource());
} catch (UnknownHostException e) {
e.printStackTrace();
return null;
*: addDocuments
批量新增记录
注意 下面有个map.get(id) 也就是物理表的id
public static void addDocuments(List&Map&Object, Object&& list, String index, String type) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
BulkRequestBuilder bulkRequest = client.prepareBulk();
for (Map&Object, Object& map : list) {
XContentBuilder xb = XContentFactory.jsonBuilder().startObject();
for (Object key : map.keySet()) {
xb.field((String) key, map.get(key));
xb.endObject();
bulkRequest.add(client.prepareIndex(index, type, StringUtil.trim(map.get("id"))).setSource(xb));
BulkResponse bulkResponse = bulkRequest.get();
if (bulkResponse.hasFailures()) {
System.err.println("");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
*: queryDocuments
from 记录从哪开始
rangeLists
范围 参数比如价格
field,from,to
精确查询参数
value传大写的 ASC , DESC
要高亮的字段
* List&Map&String,Object&&
public static List&Map&String, Object&& queryDocuments(String index, String type, int from, int size, List&Map&Object, Object&& rangeLists, Map&Object, Object& queryMaps, Map&Object, Object& sortMaps, List&String& fields, Map&Object, Object& fullTextQueryMaps) {
Client client = TransportClient.builder().build().addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(ip), port));
List&Map&String, Object&& lists = new ArrayList&Map&String, Object&&();
/** 下面这一段是构造bool嵌套,就是构造一个在满足精确查找的条件下,再去进行多字段的或者关系的全文检索 **/
BoolQueryBuilder bb = QueryBuilders.boolQuery();
if (fullTextQueryMaps != null) {
for (Object key : fullTextQueryMaps.keySet()) {
bb = bb.should(QueryBuilders.matchQuery((String) key, fullTextQueryMaps.get(key)));
BoolQueryBuilder bb1 = QueryBuilders.boolQuery();
if (queryMaps != null) {
bb1 = bb1.must(bb);
for (Object key : queryMaps.keySet()) {
bb1 = bb1.must(QueryBuilders.termQuery((String) key, queryMaps.get(key)));
/** 上面这一段是构造bool嵌套,就是构造一个在满足精确查找的条件下,再去进行多字段的或者关系的全文检索 **/
QueryBuilder qb = null;
if (rangeLists != null && rangeLists.size() & 0) {
for (Map&Object, Object& map : rangeLists) {
if (map != null && (!map.isEmpty())) {
qb = QueryBuilders.rangeQuery(StringUtil.trim(map.get("field"))).from(StringUtil.trim(map.get("from"))).to(StringUtil.trim(map.get("to")));
SortBuilder sortBuilder = null;
if (sortMaps != null) {
for (Object key : sortMaps.keySet()) {
sortBuilder = SortBuilders.fieldSort((String) key).order(StringUtil.trim(sortMaps.get(key)).equals("ASC") ? SortOrder.ASC : SortOrder.DESC);
SearchRequestBuilder searchRequestBuilder = client.prepareSearch(index).setTypes(type).setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setQuery(bb1)
.setPostFilter(qb)
.setFrom(from).setSize(size).addSort(sortBuilder).setExplain(true);
if (fields != null && fields.size() & 0) {
for (String field : fields) {
searchRequestBuilder.addHighlightedField(field);
searchRequestBuilder.setHighlighterEncoder("UTF-8").setHighlighterPreTags("&span style=\"color:red\"&").setHighlighterPostTags("&/span&");
SearchResponse response = searchRequestBuilder.execute().actionGet();
SearchHits hits = response.getHits();
for (SearchHit hit : hits) {
Map&String, HighlightField& result = hit.highlightFields();
for (String field : fields) {
HighlightField titleField = result.get(field);
if (titleField == null) {
Text[] titleTexts = titleField.fragments();
String value = "";
for (Text text : titleTexts) {
hit.getSource().put(field, value);
lists.add(hit.getSource());
} catch (UnknownHostException e) {
e.printStackTrace();
return null;
package elasticsearch_web
import java.io.IOException
import java.net.InetAddress
import java.net.UnknownHostException
import java.text.SimpleDateFormat
import java.util.ArrayList
import java.util.Date
import java.util.HashMap
import java.util.List
import java.util.Map
import java.util.concurrent.ExecutionException
import org.apache.commons.lang.time.DateFormatUtils
import org.elasticsearch.action.bulk.BulkRequestBuilder
import org.elasticsearch.action.bulk.BulkResponse
import org.elasticsearch.action.delete.DeleteResponse
import org.elasticsearch.action.get.GetResponse
import org.elasticsearch.action.get.MultiGetItemResponse
import org.elasticsearch.action.get.MultiGetResponse
import org.elasticsearch.action.index.IndexResponse
import org.elasticsearch.action.search.SearchRequestBuilder
import org.elasticsearch.action.search.SearchResponse
import org.elasticsearch.action.search.SearchType
import org.elasticsearch.action.update.UpdateRequest
import org.elasticsearch.client.Client
import org.elasticsearch.client.transport.TransportClient
import org.elasticsearch.common.text.Text
import org.elasticsearch.common.transport.InetSocketTransportAddress
import org.elasticsearch.common.xcontent.XContentBuilder
import org.elasticsearch.common.xcontent.XContentFactory
import org.elasticsearch.index.query.BoolQueryBuilder
import org.elasticsearch.index.query.MatchQueryBuilder
import org.elasticsearch.index.query.QueryBuilder
import org.elasticsearch.index.query.QueryBuilders
import org.elasticsearch.index.query.QueryStringQueryBuilder
import org.elasticsearch.search.SearchHit
import org.elasticsearch.search.SearchHits
import org.elasticsearch.search.highlight.HighlightField
import org.elasticsearch.search.sort.SortBuilder
import org.elasticsearch.search.sort.SortBuilders
import org.elasticsearch.search.sort.SortOrder
import org.utils.StringUtil
import net.sf.json.JSONObject
import utils.ElasticsearchTools
public class ElasticsearchTest {
public static void main(String args[]) throws UnknownHostException {
//updateDocument("member", "user", "1", "message", "我真的爱过啊!")
//getDocuments("member", "user", "1", "2")
//批量新增方法
List&Map&Object, Object&& list = new ArrayList&Map&Object, Object&&()
Map&Object, Object& map = new HashMap&Object, Object&()
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
String pattern = "yyyy-MM-dd'T'HH:mm:ss:SSSZZ"
System.out.println(DateFormatUtils.format(new Date(), pattern))
map.put("id", "1")
map.put("desc", "我们是共产主义接班人")
map.put("name", "小名")
map.put("type", "1")
map.put("age", "36")
map.put("mydate", df.format(new Date()))
map.put("birthday", DateFormatUtils.format(new Date(), pattern))
map.put("love", "足球,自行车,吉他")
Map&Object, Object& map1 = new HashMap&Object, Object&()
map1.put("id", "2")
map1.put("desc", "我们是资本主义的接班人")
map1.put("name", "小芳")
map1.put("type", "12")
map1.put("age", "32")
map1.put("birthday", df.format(new Date()))
map1.put("love", "足球,滑板,汽车")
Map&Object, Object& map2 = new HashMap&Object, Object&()
map2.put("id", "3")
map2.put("name", "大豆")
map2.put("type", "123")
map2.put("desc", "我哎打球")
map2.put("age", "31")
map2.put("birthday", df.format(new Date()))
map2.put("love", "航模,秋千,汽车")
Map&Object, Object& map3 = new HashMap&Object, Object&()
map3.put("id", "4")
map3.put("name", "阿信")
map3.put("type", "2")
map3.put("desc", "我喜欢打篮球")
map3.put("age", "21")
map3.put("birthday", DateFormatUtils.format(new Date(), pattern))
map3.put("love", "摩托,拼图,汽车")
Map&Object, Object& map4 = new HashMap&Object, Object&()
map4.put("id", "5")
map4.put("name", "阿信")
map4.put("type", "2")
map4.put("desc", "我喜欢打篮球")
map4.put("age", "21")
map4.put("birthday", DateFormatUtils.format(new Date(), pattern))
map4.put("love", "摩托,拼图,汽车")
Map&Object, Object& map5 = new HashMap&Object, Object&()
map5.put("id", "6")
map5.put("name", "阿信")
map5.put("type", "2")
map5.put("desc", "我喜欢打篮球")
map5.put("age", "21")
map5.put("birthday", DateFormatUtils.format(new Date(), pattern))
map5.put("love", "摩托,拼图,汽车")
list.add(map)
list.add(map3)
ElasticsearchTools.addDocuments(list, "lol", "lol")
//测试查询方法
最后给个API链接,以及几个参考站。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24566次
排名:千里之外
原创:18篇
转载:53篇
(1)(2)(1)(1)(2)(4)(17)(14)(10)(5)(1)(7)(3)(3)windows下安装的cygwin 如何运行java程序???? 急!!!!!!!
[问题点数:20分,结帖人y]
windows下安装的cygwin 如何运行java程序???? 急!!!!!!!
[问题点数:20分,结帖人y]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。502 Bad Gateway
502 Bad Gateway&&elasticsearch工具包ESUtils.javaelasticsearch搜索工具包,常用接口封装,可直接用于项目进行基于elasticsearch的搜索,分页、查询、初始化、创建索引、以及索引的增、删、改、查都封装成普通接口。0个牛币请下载代码后再发表评论/精精精精原原原原原原最热搜索分享话题编程语言基础Web开发数据库开发客户端开发脚本工具游戏开发服务器软硬件开源组件类库相关分享原精最近下载暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级最近浏览暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级暂无贡献等级扫描二维码关注最代码为好友"/>扫描二维码关注最代码为好友

我要回帖

更多关于 elasticsearch java包 的文章

 

随机推荐