1.簡單介紹Elasticsearch和RDBMS對應的關係,便於記憶理解
Elasticsearch |
RDBMS |
index |
database |
type/mapping |
table |
document/object |
row/record |
field |
column |
2.封裝一個獲取client的工具類
/**
* @author lcj
* @version 1.0
* @description 獲取client
* @Create 2017-06-19
*/
public class TransportClientUtil {
public static TransportClient getTransportClient(){
Settings settings = Settings.builder()
.put("cluster.name","es-cluster")
.put("client.transport.sniff",true)
.build();
TransportClient client = null;
try {
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getLocalHost(),9300));
} catch (UnknownHostException e) {
e.printStackTrace();
}
return client;
}
}
3.使用java api進行CRUD
/**
* @author lcj
* @version 1.0
* @description 使用java api操作es node,進行簡單的crud
* @Create 2017-06-22
*/
public class EsJavaApi {
private static final Logger LOGGER = LoggerFactory.getLogger(EsJavaApi.class);
private static TransportClient client = TransportClientUtil.getTransportClient();
public static void main(String[] args) {
delete();
client.close();
}
/**
* pojo bean ,創建index 文檔
*/
private static void save(){
Book book = new Book();
book.setName("jvm 虛擬機5");
book.setAuthor("lcj4");
book.setPublishTime(new Date().toString());
book.setPrice(512.10);
book.setId("17");
ObjectMapper mapper = new ObjectMapper();
try {
byte[] bytes = mapper.writeValueAsBytes(book);
IndexResponse response = client.prepareIndex("book","book",book.getId())
.setSource(bytes)
.get();
System.out.println(response.getResult());
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
/**
* 根據id,搜索文檔
*/
private static void get(){
GetResponse response = client.prepareGet("book","book","17")
.setOperationThreaded(false)
.get();
System.out.println(response.getSourceAsString());
}
/**
* 更新文檔
*/
private static void update(){
UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("book");
updateRequest.type("book");
updateRequest.id("17");
Book book = new Book();
book.setName("jvm 虛擬機55");
book.setAuthor("lcj4");
book.setPublishTime(DateFormatUtils.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
book.setPrice(512.18);
book.setId("17");
ObjectMapper mapper = new ObjectMapper();
try {
updateRequest.doc(mapper.writeValueAsBytes(book));
client.update(updateRequest).get();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void delete(){
DeleteResponse response = client.prepareDelete("book","book","17")
.get();
System.out.println(response);
}
}