from: http://blog.csdn.net/changong28/article/details/38445805#comments

3.1 集群的连接

3.1.1 作为Elasticsearch节点

import static org.elasticsearch.node.NodeBuilder.nodeBuilder;
import org.elasticsearch.client.Client;
import org.elasticsearch.node.Node; Node node = nodeBuilder().clusterName("escluster2").client(true).
node();
Client client = node.client();
 

3.1.2 使用Transport连接

import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.settings.ImmutableSettings;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.InetSocketTransportAddress; Settings settings = ImmutableSettings.settingsBuilder().put("cluster.name", "escluster2").build();
TransportClient client = new TransportClient(settings);
client.addTransportAddress(new InetSocketTransportAddress("127.0.0.1",9300));
 

3.2 文档的CRUD

3.2.1 查询文档

 
GetResponse response = client.prepareGet("library", "book", "1")
.setFields("title", "_source")
.execute().actionGet();

3.2.2 索引文档

import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.Client; IndexResponse response = client.prepareIndex("library", "book", "2")
.setSource("{ \"title\": \"Mastering ElasticSearch\"}")
.execute().actionGet();

3.2.3 更新文档

import org.elasticsearch.action.update.UpdateResponse;
import org.elasticsearch.client.Client;
import java.util.Map;
import org.elasticsearch.common.collect.Maps; Map<String, Object> params = Maps.newHashMap();
params.put("ntitle", "ElasticSearch Server Book");
UpdateResponse response = client.prepareUpdate("library", "book", "2")
.setScript("ctx._source.title = ntitle")
.setScriptParams(params)
.execute().actionGet();

3.2.4 删除文档

import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.client.Client; DeleteResponse response = client.prepareDelete("library", "book", "2")
.execute().actionGet();

3.3 Elasticsearch检索

3.3.1 Preparing a query

import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.search.SearchHit; SearchResponse response = client.prepareSearch("library")
.addFields("title", "_source")
.execute().actionGet();
for(SearchHit hit: response.getHits().getHits()) {
<span style="white-space:pre"> </span>System.out.println(hit.getId());
<span style="white-space:pre"> </span>if (hit.getFields().containsKey("title")) {
<span style="white-space:pre"> </span>System.out.println("field.title: "+ hit.getFields().get("title").getValue());
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>System.out.println("source.title: " + hit.getSource().get("title"));
}

3.3.2 Building queries

import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; QueryBuilder queryBuilder = QueryBuilders
.disMaxQuery()
.add(QueryBuilders.termQuery("title", "Elastic"))
.add(QueryBuilders.prefixQuery("title", "el"));
System.out.println(queryBuilder.toString());
SearchResponse response = client.prepareSearch("library")
.setQuery(queryBuilder)
.execute().actionGet();

3.3.3 Using the match all documents query

queryBuilder = QueryBuilders.matchAllQuery()
.boost(11f).normsField("title");

3.3.4 The match query

queryBuilder = QueryBuilders
.matchQuery("message", "a quick brown fox")
.operator(Operator.AND)
.zeroTermsQuery(ZeroTermsQuery.ALL);

3.3.5 Using the geo shape query

queryBuilder = QueryBuilders.geoShapeQuery("location",
ShapeBuilder.newRectangle()
.topLeft(13, 53)
.bottomRight(14, 52)
.build());

3.3.6 Paging query

SearchResponse response = client.prepareSearch("library")
.setQuery(QueryBuilders.matchAllQuery())
.setFrom(10)
.setSize(20)
.execute().actionGet();

3.3.7 Sorting

SearchResponse response = client.prepareSearch("library")
.setQuery(QueryBuilders.matchAllQuery())
.addSort(SortBuilders.fieldSort("title"))
.addSort("_score", SortOrder.DESC)
.execute().actionGet()

3.3.8 Filtering

FilterBuilder filterBuilder = FilterBuilders
.andFilter(
FilterBuilders.existsFilter("title").filterName("exist"),
FilterBuilders.termFilter("title", "elastic")
);
SearchResponse response = client.prepareSearch("library")
.setFilter(filterBuilder)
.execute().actionGet();

3.3.9 Faceting

FacetBuilder facetBuilder = FacetBuilders
.filterFacet("test")
.filter(FilterBuilders.termFilter("title", "elastic"));
SearchResponse response = client.prepareSearch("library")
.addFacet(facetBuilder)
.execute().actionGet();

3.3.10 Highlighting

SearchResponse response = client.prepareSearch("wikipedia")
.addHighlightedField("title")
.setQuery(QueryBuilders.termQuery("title", "actress"))
.setHighlighterPreTags("<1>", "<2>")
.setHighlighterPostTags("</1>", "</2>")
.execute().actionGet();
for(SearchHit hit: response.getHits().getHits()) {
<span style="white-space:pre"> </span>HighlightField hField = hit.getHighlightFields().get("title");
<span style="white-space:pre"> </span>for (Text t : hField.fragments()) {
<span style="white-space:pre"> </span>System.out.println(t.string());
<span style="white-space:pre"> </span>}
}

3.3.11 Suggestions

SearchResponse response = client.prepareSearch("wikipedia")
.setQuery(QueryBuilders.matchAllQuery())
.addSuggestion(new TermSuggestionBuilder("first_suggestion")
.text("graphics designer")
.field("_all"))
.execute().actionGet(); for( Entry<? extends Option> entry : response.getSuggest().getSuggestion("first_suggestion").getEntries()) {
<span style="white-space:pre"> </span>System.out.println("Check for: " + entry.getText() + ". Options:");
<span style="white-space:pre"> </span>for( Option option : entry.getOptions()) {
<span style="white-space:pre"> </span>System.out.println("\t" + option.getText());
<span style="white-space:pre"> </span>}
}

3.3.12 Counting

CountResponse response = client.prepareCount("library")
.setQuery(QueryBuilders.termQuery("title", "elastic"))
.execute().actionGet();

3.3.13 Scrolling

SearchResponse responseSearch = client.prepareSearch("library")
.setScroll("1m")
.setSearchType(SearchType.SCAN)
.execute().actionGet();
String scrollId = responseSearch.getScrollId();
SearchResponse response = client.prepareSearchScroll(scrollId).execute().actionGet();

3.3.14 Bulk

BulkResponse response = client.prepareBulk()
.add(client.prepareIndex("library", "book", "5")
.setSource("{ \"title\" : \"Solr Cookbook\"}")
.request())
.add(client.prepareDelete("library", "book", "2").request()).execute().actionGet();

3.3.15 The delete by query

DeleteByQueryResponse response = client.prepareDeleteByQuery("library")
.setQuery(QueryBuilders.termQuery("title", "ElasticSearch"))
.execute().actionGet();

3.3.16 Multi GET

MultiGetResponse response = client.prepareMultiGet()
.add("library", "book", "1", "2")
.execute().actionGet();

3.3.16 Multi Search

MultiSearchResponse response = client.prepareMultiSearch()
.add(client.prepareSearch("library", "book").request())
.add(client.prepareSearch("news").
.setFilter(FilterBuilders.termFilter("tags", "important")))
.execute().actionGet();

3.3.17 Building JSON queries and documents

IndexResponse response = client
.prepareIndex("library", "book", "2")
.setSource("{ \"title\": \"Mastering ElasticSearch\"}")
.execute().actionGet(); Map<String, Object> m = Maps.newHashMap();
m.put("1", "Introduction");
m.put("2", "Basics");
m.put("3", "And the rest");
XContentBuilder json = XContentFactory.jsonBuilder().prettyPrint()
.startObject()
.field("id").value("2123")
.field("lastCommentTime", new Date())
.nullField("published")
.field("chapters").map(m)
.field("title", "Mastering ElasticSearch")
.array("tags", "search", "ElasticSearch", "nosql")
.field("values")
.startArray()
.value(1)
.value(10)
.endArray()
.endObject();

3.4 The administration API

3.4.1 The cluster administration API

3.4.1.1 The cluster and indices health API

ClusterHealthResponse response = client.admin().cluster()
.prepareHealth("library")
.execute().actionGet();

3.4.1.2 The cluster state API

ClusterStateResponse response = client.admin().cluster()
.prepareState()
.execute().actionGet();

3.4.1.3 The update settings API

Map<String, Object> map = Maps.newHashMap();
map.put("indices.ttl.interval", "10m");
ClusterUpdateSettingsResponse response = client.admin().cluster()
.prepareUpdateSettings()
.setTransientSettings(map)
.execute().actionGet();

3.4.1.4 The reroute API

ClusterRerouteResponse response = client.admin().cluster()
.prepareReroute()
.setDryRun(true)
.add(new MoveAllocationCommand(new ShardId("library", 3), "G3czOt4HQbKZT1RhpPCULw",PvHtEMuRSJ6rLJ27AW3U6w"),
new CancelAllocationCommand(new ShardId("library", 2), "G3czOt4HQbKZT1RhpPCULw",rue))
.execute().actionGet();

3.4.1.5 The nodes information API

NodesInfoResponse response = client.admin().cluster()
.prepareNodesInfo()
.setNetwork(true)
.setPlugin(true)
.execute().actionGet();

3.4.1.6 The node statistics API

NodesStatsResponse response = client.admin().cluster()
.prepareNodesStats()
.all()
.execute().actionGet();

3.4.1.7 The nodes hot threads API

NodesHotThreadsResponse response = client.admin().cluster()
.prepareNodesHotThreads()
.execute().actionGet();

3.4.1.8 The nodes shutdown API

NodesShutdownResponse response = client.admin().cluster()
.prepareNodesShutdown()
.execute().actionGet();

3.4.1.9 The search shards API

ClusterSearchShardsResponse response = client.admin().cluster()
.prepareSearchShards()
.setIndices("library")
.setRouting("12")
.execute().actionGet();

3.4.2 The Indices administration API

3.4.2.1 The index existence API

IndicesExistsResponse response = client.admin().indices()
.prepareExists("books", "library")
.execute().actionGet();

3.4.2.2 The Type existence API

TypesExistsResponse response = client.admin().indices()
.prepareTypesExists("library")
.setTypes("book")
.execute().actionGet();

3.4.2.3 The indices stats API

IndicesStatsResponse response = client.admin().indices()
.prepareStats("library")
.all()
.execute().actionGet();

3.4.2.4 Index status

IndicesStatusResponse response = client.admin().indices()
.prepareStatus("library")
.setRecovery(true)
.setSnapshot(true)
.execute().actionGet();

3.4.2.5 Segments information API

IndicesSegmentResponse response = client.admin().indices()
.prepareSegments("library")
.execute().actionGet();

3.4.2.6 Creating an index API

CreateIndexResponse response = client.admin().indices()
.prepareCreate("news")
.setSettings(ImmutableSettings.settingsBuilder()
.put("number_of_shards", 1))
.addMapping("news", XContentFactory.jsonBuilder()
.startObject()
.startObject("news")
.startObject("properties")
.startObject("title")
.field("analyzer", "whitespace")
.field("type", "string")
.endObject()
.endObject()
.endObject()
.endObject())
.execute().actionGet();

3.4.2.7 Deleting an index

DeleteIndexResponse response = client.admin().indices()
.prepareDelete("news")
.execute().actionGet();

3.4.2.8 Closing an index

CloseIndexResponse response = client.admin().indices()
.prepareClose("library")
.execute().actionGet();

3.4.2.9 Opening an index

OpenIndexResponse response = client.admin().indices()
.prepareOpen("library")
.execute().actionGet();

3.4.2.10 The Refresh API

RefreshResponse response = client.admin().indices()
.prepareRefresh("library")
.execute().actionGet();

3.4.2.11 The Flush API

FlushResponse response = client.admin().indices()
.prepareFlush("library")
.setFull(false)
.execute().actionGet();

3.4.2.12 The Optimize API

OptimizeResponse response = client.admin().indices()
.prepareOptimize("library")
.setMaxNumSegments(2)
.setFlush(true)
.setOnlyExpungeDeletes(false)
.execute().actionGet();

3.4.2.13 The put mapping API

PutMappingResponse response = client.admin().indices()
.preparePutMapping("news")
.setType("news")
.setSource(XContentFactory.jsonBuilder()
.startObject()
.startObject("news")
.startObject("properties")
.startObject("title")
.field("analyzer", "whitespace")
.field("type", "string")
.endObject()
.endObject()
.endObject()
.endObject())
.execute().actionGet();

3.4.2.14 The delete mapping API

DeleteMappingResponse response = client.admin().indices()
.prepareDeleteMapping("news")
.setType("news")
.execute().actionGet();

3.4.2.15 The gateway snapshot API

GatewaySnapshotResponse response = client.admin().indices()
.prepareGatewaySnapshot("news")
.execute().actionGet();

3.4.2.16 The aliases API

IndicesAliasesResponse response = client.admin().indices()
.prepareAliases()
.addAlias("news", "n")
.addAlias("library", "elastic_books",
FilterBuilders.termFilter("title", "elasticsearch"))
.removeAlias("news", "current_news")
.execute().actionGet();

3.4.2.17 The get aliases API

IndicesGetAliasesResponse response = client.admin().indices()
.prepareGetAliases("elastic_books", "n")
.execute().actionGet();

3.4.2.18 The aliases exists API

AliasesExistResponse response = client.admin().indices()
.prepareAliasesExist("elastic*", "unknown")
.execute().actionGet();

3.4.2.19 The clear cache API

ClearIndicesCacheResponse response = client.admin().indices()
.prepareClearCache("library")
.setFieldDataCache(true)
.setFields("title")
.setFilterCache(true)
.setIdCache(true)
.execute().actionGet();

3.4.2.20 The update settings API

UpdateSettingsResponse response = client.admin().indices()
.prepareUpdateSettings("library")
.setSettings(ImmutableSettings.builder()
.put("index.number_of_replicas", 2))
.execute().actionGet();

3.4.2.21 The analyze API

AnalyzeResponse response = client.admin().indices()
.prepareAnalyze("library", "ElasticSearch Servers")
.setTokenizer("whitespace")
.setTokenFilters("nGram")
.execute().actionGet();

3.4.2.22 The put template API

  1. PutIndexTemplateResponse response = client.admin().indices()
    .preparePutTemplate("my_template")
    .setTemplate("product*")
    .setSettings(ImmutableSettings.builder()
    .put("index.number_of_replicas", 2)
    .put("index.number_of_shards", 1))
    .addMapping("item", XContentFactory.jsonBuilder()
    .startObject()
    .startObject("item")
    .startObject("properties")
    .startObject("title")
    .field("type", "string")
    .endObject()
    .endObject()
    .endObject()
    .endObject())
    .execute().actionGet();

3.4.2.23 The delete template API

DeleteIndexTemplateResponse response = client.admin().indices()
.prepareDeleteTemplate("my_*")
.execute().actionGet();

3.4.2.24 The validate query API

ValidateQueryResponse response = client.admin().indices()
.prepareValidateQuery("library")
.setExplain(true)
.setQuery(XContentFactory.jsonBuilder()
.startObject()
.field("name").value("elastic search")
.endObject().bytes())
.execute().actionGet();

3.4.2.25 The put warmer API

PutWarmerResponse response = client.admin().indices()
.preparePutWarmer("library_warmer")
.setSearchRequest(client.prepareSearch("library")
.addFacet(FacetBuilders
.termsFacet("tags").field("tags")))
.execute().actionGet();

3.4.2.26 The delete warmer API

DeleteWarmerResponse response = client.admin().indices()
.prepareDeleteWarmer()
.setName("library_*")
.execute().actionGet();
































[转载]Elasticsearch Java API总汇的更多相关文章

  1. [转]Elasticsearch Java API总汇

    http://blog.csdn.net/changong28/article/details/38445805#comments 3.1 集群的连接 3.1.1 作为Elasticsearch节点 ...

  2. [搜索]ElasticSearch Java Api(一) -添加数据创建索引

    转载:http://blog.csdn.net/napoay/article/details/51707023 ElasticSearch JAVA API官网文档:https://www.elast ...

  3. Elasticsearch java api 基本搜索部分详解

    文档是结合几个博客整理出来的,内容大部分为转载内容.在使用过程中,对一些疑问点进行了整理与解析. Elasticsearch java api 基本搜索部分详解 ElasticSearch 常用的查询 ...

  4. Elasticsearch java api 常用查询方法QueryBuilder构造举例

    转载:http://m.blog.csdn.net/u012546526/article/details/74184769 Elasticsearch java api 常用查询方法QueryBuil ...

  5. Elasticsearch Java API深入详解

    0.题记 之前Elasticsearch的应用比较多,但大多集中在关系型.非关系型数据库与Elasticsearch之间的同步.以上内容完成了Elasticsearch所需要的基础数据量的供给.但想要 ...

  6. Elasticsearch Java API 很全的整理

    Elasticsearch 的API 分为 REST Client API(http请求形式)以及 transportClient API两种.相比来说transportClient API效率更高, ...

  7. 第08章 ElasticSearch Java API

    本章内容 使用客户端对象(client object)连接到本地或远程ElasticSearch集群. 逐条或批量索引文档. 更新文档内容. 使用各种ElasticSearch支持的查询方式. 处理E ...

  8. Elasticsearch Java API的基本使用

    说明 在明确了ES的基本概念和使用方法后,我们来学习如何使用ES的Java API. 本文假设你已经对ES的基本概念已经有了一个比较全面的认识. 客户端 你可以用Java客户端做很多事情: 执行标准的 ...

  9. 彻底搞懂 Elasticsearch Java API

    说明 在明确了ES的基本概念和使用方法后,我们来学习如何使用ES的Java API. 本文假设你已经对ES的基本概念已经有了一个比较全面的认识. 客户端 你可以用Java客户端做很多事情: 执行标准的 ...

随机推荐

  1. 洛谷 P3168 [CQOI2015]任务查询系统 解题报告

    P3168 [CQOI2015]任务查询系统 题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分. 超级计算机中的任务用三元组\((S_i,E_i,P_i) ...

  2. ubuntu安装出现"删除initramfs-tools时出错",subprocess installed post-installation script returned error exit status 1

    昨日准备重装ubuntu,增大了系统容量,因为前面用到boot分区不到100M,于是这里分区如下 /boot 100M / 30G /home 50G 然后安装快结束时就出现如下图问题 开始以为是镜像 ...

  3. Linux临时增加swap空间

    linux临时增加swap空间:step 1: #dd if=/dev/zero of=/home/swap bs=1024 count=500000 注释:of=/home/swap,放置swap的 ...

  4. 汕头市队赛 SRM13 T2

    这道题很容易想到是二分 但是因为可能会爆LL 所以要加一波特判 #include<cstdio> #include<cstring> #include<algorithm ...

  5. [摸鱼] 配置的tmux的使用攻略!

    o~/.tmux.conf <>=ctrl b <>$ 重命名 <>% 水平切割 <>" 垂直切割 <>o 下一个窗口 <& ...

  6. git 之gitignore 添加项之后生效的问题

    .gitjignore 文件是在团队项目中上传到云端的的规则文件,主要是写些规则过滤掉某些文件夹或者文件 一,过滤规则 由于我用webstrom 通常会生成一些日志文件 /.idea/   过滤整个文 ...

  7. python xpath 基本用法

    转自:http://www.pythoner.cn/home/blog/python-xpath-basic-usage/ Pyer发现 业界资讯 相册 第7期:Pythoner技术交流沙龙 关于我们 ...

  8. 使用函数方式生成UUID

    1.默认生成的UUID是有 “-” 分隔符的 例如: public static void main(String[] args){ String uuid = UUID.randomUUID().t ...

  9. Laravel Model Factory(模型工厂)的用法以及数据本地化

    Model Factory的位置 生成数据方法:make是生成数据,create是生成数据并保存到数据库 本地化方法 这样便生成了中文数据 整理自www.laravist.com视频教程

  10. 如何跳转到其他APP(android)

    有很多小伙伴会遇上这样的需求,从自己的app页面跳转到其他APP界面,一般情况下都是在自己的主包中跳转到公司其他APP,或者是合作方的APP,如果手机中没有这款APP会下载这款APP . 今天,博主就 ...