您的位置:首页 > 其它

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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: