package com.rayclear;
import org.elasticsearch.action.delete.DeleteResponse;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.Client;
import org.elasticsearch.common.xcontent.XContentType;
import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.search.SearchHit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.rayclear.domain.Users;
import net.sf.json.JSONObject;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests2 {
@Autowired
private Client client; // es 客户端
@Test
public void add() {
Users u = new Users();
u.setNickname("测试周三三");
u.setId(888888);
JSONObject json = JSONObject.fromObject(u);
IndexResponse response = client.prepareIndex("users", "user" , u.getId().toString())
.setSource(json.toString(), XContentType.JSON)
.get();
String id = response.getId();
System.out.println(response);
System.out.println(id);
}
@Test
public void find() {
// 全部查询
// Users u = new Users();
// u.setNickname("测试周三三");
// SearchHit[] hits = client.prepareSearch("users").get().getHits().getHits();
// for (SearchHit searchHit : hits) {
// JSONObject json = JSONObject.fromObject(searchHit.getSource());
// Users user = (Users) json.toBean(json, Users.class);
// System.out.println(user.getNickname());
// }
// 条件查询
//范围查询 其它查询文档里去找吧
// QueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("id").gt(50);
// 多条件组合查询
// QueryBuilder query1 = QueryBuilders.multiMatchQuery(k, "uid", "nickname", "displayname", "description", "information")
// .type(MultiMatchQueryBuilder.Type.PHRASE);
// QueryBuilder query2 = QueryBuilders.boolQuery().must(query1)
// .filter(QueryBuilders.rangeQuery("user_level").gt(1))
//.filter(QueryBuilders.rangeQuery("activities_count").gt(0));
// SearchHit[] hits = client.prepareSearch("users").setTypes("user")
// .setQuery(query2).addSort("fans_count", SortOrder.DESC)
// .setSize(30).get().getHits().getHits();
// List<Integer> list_ids = new ArrayList<>();
// for (SearchHit searchHit : hits) {
// list_ids.add(Integer.parseInt(searchHit.getId()));
// }
QueryBuilder builder = QueryBuilders.matchQuery("nickname", "周三");
SearchHit[] hits = client.prepareSearch("users").setTypes("user").setQuery(builder).setSize(10).execute().actionGet().getHits().getHits();
for (SearchHit searchHit : hits) {
System.out.println(searchHit.getType());
System.out.println(searchHit.getId());
System.out.println(searchHit.getIndex());
JSONObject json = JSONObject.fromObject(searchHit.getSource());
Users user = (Users) JSONObject.toBean(json, Users.class);
System.out.println(user.getNickname());
System.out.println(user.getId());
}
}
@Test
public void delete() {
// 删除
DeleteResponse deleteresponse = client.prepareDelete("users", "user","AV_oTtB4uu_jhSdQ1cct").execute().actionGet();
System.out.println(deleteresponse.getVersion());
}
}
本人整合springboot时发现新版的6.0.0的elastic会报错,找不到节点,后来安装一个5.4.X低版本的就好了
大家注意一下这个问题
基础学习参考http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
基础中文文档https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html
官方文档https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
参考文章https://www.cnblogs.com/zlslch/p/6433438.html https://www.cnblogs.com/wenbronk/p/6432990.html