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. 2017 多校4 Dirt Ratio

    多校4 Dirt Ratio(二分+线段树) 题意: 给出n个数,找一段区间使得区间内不同数字个数除以区间长度最小,求这个最小值,\(n<=60000,a_i<=n\) 题解: 二分答案m ...

  2. 转:Android Context的理解

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40481055,本文出自:[张鸿洋的博客] 本文大多数内容翻译自:http://w ...

  3. 模拟Json格式传值请求与数据接收

    a.php代码: function http_post_json($url, $jsonStr) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, ...

  4. poj 3744 Scout YYF 1 (概率DP+矩阵快速幂)

    F - Scout YYF I Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Sub ...

  5. [bzoj2190][SDOI2008]仪仗队 ——欧拉函数

    题解 以c点为(0, 0)建立坐标系,可以发现, 当(x,y)!=1,即x,y不互素时,(x,y)点一定会被点(x/n, y/n)遮挡. 所以点(x, y)被看到的充分必要条件是Gcd(x, y) = ...

  6. pywordfrom

    http://files.cnblogs.com/files/zhang-pengcheng/pywordform-0.02.zip   Win8.1自带微软五笔输入法开启方法

  7. cocos2d Programming Guide

    http://python.cocos2d.org/doc/programming_guide/index.html The cocos2d Programming Guide provides in ...

  8. MVC5的坑

    事情是这样的,今天在写一个功能模块的时候,创建的方法,到controller里,死活为null 以前从没出现这种情况啊,但是区别是这个代码是多层跳转进来的,难道是页面跳转太多,还记得之前的model, ...

  9. MSSQL 让排序更方便灵活

    SQL: SELECT * FROM table1 ORDER BY CASE WHEN field=value THEN 1 ELSE 0 END (ASC/DESC) 是不是很方便呢,哈哈

  10. (3)WPF 布局

    一.布局原则 二.布局过程 三.布局容器 核心布局面板 布局属性