Elasticsearch 단순 사용 시리즈--자바 API 로 CRUD 작업
8452 단어 elasticsearch
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") // , elasticsearch
.put("client.transport.sniff",true) // , 5 nodes
.build();
TransportClient client = null;
try {
client = new PreBuiltTransportClient(settings)
// node
//.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(System.getenv("COMPUTERNAME")),9300));
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getLocalHost(),9300));
} catch (UnknownHostException e) {
e.printStackTrace();
}
return client;
}
}
3.자바 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) {
//
//save();
//
//get();
//
//update();
//
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()); //CREATED
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
/**
* id,
*/
private static void get(){
GetResponse response = client.prepareGet("book","book","17")
.setOperationThreaded(false) // true,
.get();
//{"id":"17","name":"jvm 5","author":"lcj4","price":512.1,"publishTime":"Thu Jun 22 13:36:49 CST 2017"}
System.out.println(response.getSourceAsString());
}
/**
*
*/
private static void update(){
UpdateRequest updateRequest = new UpdateRequest();
//
updateRequest.index("book");
//
updateRequest.type("book");
// id
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();
//
//{"_index":"book","_type":"book","_id":"17","_version":2,"found":true,"_source":{"id":"17","name":"jvm 55","author":"lcj4","price":512.18,"publishTime":"2017-06-22 13:45:22"}}
try {
updateRequest.doc(mapper.writeValueAsBytes(book));
client.update(updateRequest).get();
} catch (Exception e) {
e.printStackTrace();
}
}
/* id */
private static void delete(){
DeleteResponse response = client.prepareDelete("book","book","17")
.get();
//DeleteResponse[index=book,type=book,id=17,version=3,result=deleted,shards=ShardInfo{total=2, successful=1, failures=[]}]
System.out.println(response);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
App Search의 본문 파싱(저를 포함하여) 일부 사람들이 Swifttype 사이트 검색에서 놓친 기능은 CSS 선택기를 사용하여 콘텐츠를 구문 분석할 수 있다는 것입니다. App Search 크롤러는 지정한 웹사이트에서 모든 콘텐츠를 추출하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.