ElasticSearch 创建链接 创建索引并写入数据 查询数据 删除索引BY Id 简单的demo
2016-05-18 14:36
471 查看
1:创建ES链接:
Client
client
=
null;
ipAddress
=
"127.0.0.1"
;
Settings
settings
= Settings.settingsBuilder().put("client.transport.ping_timeout",
60, TimeUnit.SECONDS)
.put(
"client.transport.sniff",
true).build();
try
{
client
= TransportClient.builder().settings(settings).build()
.addTransportAddress(
new
InetSocketTransportAddress(InetAddress.getByName(
"localhost"), 9300));
}
catch
(Exception
e) {
e.printStackTrace();
[align=left] }[/align]
return
client;
2:创建索引并存入数据:
public
IndexResponse createIndexResponse(String
indexname
, String
type, String
jsondata) {
IndexResponse
response
= ClientFactory.getClient("").prepareIndex(
indexname,
type).setSource(
jsondata).execute()
[align=left] .actionGet();[/align]
return
response;
[align=left] }[/align]
3:根据索引&type查询数据
SearchResponse
searchResponse
= ClientFactory.
getClient("")
[align=left] .prepareSearch(indexname)[/align]
[align=left] .setTypes(types)[/align]
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH
)
[align=left] .setQuery(queryBuilder)[/align]
[align=left]// .setFrom(0).setSize(2)[/align]
//排序
[align=left]// .addSort("count", org.elasticsearch.search.sort.SortOrder.ASC)[/align]
//分组查询
.addFieldDataField("type"
)
[align=left] .execute().actionGet();[/align]
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(
"function");
Integer
count
= (Integer)
hit.getSource().get(
"count");
String
type
= (String)
hit.getSource().get(
"type");
list.add(
new
Medicine(
id,
name,
function,
count,
type));
[align=left] }[/align]
[align=left] }[/align]
return
list;
[align=left]queryBuilder:[/align]
QueryBuilder
queryBuilder
= QueryBuilders.commonTermsQuery(
"name",
"感冒"
);
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]4:删除索引:[/align]
DeleteResponse deleteResponse = new DeleteResponse();
ClientFactory.getClient("localhost").prepareDelete("indexdemo","typedemo","AVS9lVbPE6VtAdn5kDAm").execute().actionGet();
[align=left] System.out.println(deleteResponse.isFound());[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]注: 本项目使用maven搭建:[/align]
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.1.1</version>
</dependency>
Client
client
=
null;
ipAddress
=
"127.0.0.1"
;
Settings
settings
= Settings.settingsBuilder().put("client.transport.ping_timeout",
60, TimeUnit.SECONDS)
.put(
"client.transport.sniff",
true).build();
try
{
client
= TransportClient.builder().settings(settings).build()
.addTransportAddress(
new
InetSocketTransportAddress(InetAddress.getByName(
"localhost"), 9300));
}
catch
(Exception
e) {
e.printStackTrace();
[align=left] }[/align]
return
client;
2:创建索引并存入数据:
public
IndexResponse createIndexResponse(String
indexname
, String
type, String
jsondata) {
IndexResponse
response
= ClientFactory.getClient("").prepareIndex(
indexname,
type).setSource(
jsondata).execute()
[align=left] .actionGet();[/align]
return
response;
[align=left] }[/align]
3:根据索引&type查询数据
SearchResponse
searchResponse
= ClientFactory.
getClient("")
[align=left] .prepareSearch(indexname)[/align]
[align=left] .setTypes(types)[/align]
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH
)
[align=left] .setQuery(queryBuilder)[/align]
[align=left]// .setFrom(0).setSize(2)[/align]
//排序
[align=left]// .addSort("count", org.elasticsearch.search.sort.SortOrder.ASC)[/align]
//分组查询
.addFieldDataField("type"
)
[align=left] .execute().actionGet();[/align]
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(
"function");
Integer
count
= (Integer)
hit.getSource().get(
"count");
String
type
= (String)
hit.getSource().get(
"type");
list.add(
new
Medicine(
id,
name,
function,
count,
type));
[align=left] }[/align]
[align=left] }[/align]
return
list;
[align=left]queryBuilder:[/align]
QueryBuilder
queryBuilder
= QueryBuilders.commonTermsQuery(
"name",
"感冒"
);
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]4:删除索引:[/align]
DeleteResponse deleteResponse = new DeleteResponse();
ClientFactory.getClient("localhost").prepareDelete("indexdemo","typedemo","AVS9lVbPE6VtAdn5kDAm").execute().actionGet();
[align=left] System.out.println(deleteResponse.isFound());[/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left] [/align]
[align=left]注: 本项目使用maven搭建:[/align]
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.1.1</version>
</dependency>
相关文章推荐
- hdu1517A Multiplication Game
- kickstart文件的密文生成
- 测试压缩表和索引以及分区索引
- 隐式类型转换
- Java读取Url请求获得返回数据
- 广播的使用
- Android 常用网站汇总
- struts2与Hibernate的整合,实现数据库后台数据更新
- object-c中的-和+
- Python正则表达式
- android studio环境下,语音识别在多平台so文件下,导致无法识别的问题
- java中的匿名内部类总结
- GreenDao的使用指南
- 2016阿里前端实习生北京一面(已挂)
- ruby access control(public,protected,private)
- 设计模式之抽象工厂
- Android自定义实现FlowLayout
- Masonry的相关资料
- OC转Swift工具
- x264 FFmpeg Options Guide