springboot 통합elasticsearch 간단한 삭제 검사 실현 (1)

4385 단어 elasticsearch

본고는 증첨 수정만 쓰고, 조회에 관해서는 좀 복잡하므로, 다른 문장에서 상세하게 개술할 것이다


springboot은 좋은 물건이야,

우선 의존을 도입하다


		
			org.springframework.boot
			spring-boot-starter-data-elasticsearch
		

그리고 실체류를 만들어요.

package com.study.elasticsearch;

import java.io.Serializable;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;

@Document(indexName = "data", type = "table")
//indexName       org.elasticsearch.indices.InvalidIndexNameException 
//type   
public class Domain implements Serializable {

	private static final long serialVersionUID = 1L;
	@Id //  , id string, 
	private String id; // @Id , Elasticsearch , 
	private String title;
	private String createTime;
	private String text;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getCreateTime() {
		return createTime;
	}

	public void setCreateTime(String createTime) {
		this.createTime = createTime;
	}

	public String getText() {
		return text;
	}

	public void setText(String text) {
		this.text = text;
	}

	/**
	 * 
	 * @param id
	 * @param title
	 * @param createTime
	 * @param text
	 */
	public Domain(String id, String title, String createTime, String text) {
		super();
		this.id = id;
		this.title = title;
		this.createTime = createTime;
		this.text = text;
	}
// 
	Domain() {
	}
}


여기서 실체류의 몇 가지 주해를 말하다


@Document 메모의 몇 가지 속성은 mysql과 유사합니다. indexName – > 인덱스 라이브러리의 이름입니다. 프로젝트의 이름으로 명명하는 것을 권장합니다. 데이터베이스 DB type – > 형식에 해당합니다. 실체의 이름으로 테이블을 명명하는 것을 권장합니다. 데이터베이스에 있는 테이블 문서 – > row는 특정한 대상에 해당합니다.
String indexName();// , 
 
String type() default "";// , 
 
short shards() default 5;// 
 
short replicas() default 1;// 
 
String refreshInterval() default "1s";// 
 
String indexStoreType() default "fs";// 


@Id 메모
Elasticsearch에서 이 열에 해당하는 것이 바로 메인 키입니다. 검색할 때 바로 메인 키로 조회할 수 있습니다
@Field 메모
 
public @interface Field {
 
FieldType type() default FieldType.Auto;# 
 
FieldIndex index() default FieldIndex.analyzed;# 
 
DateFormat format() default DateFormat.none;
 
String pattern() default "";
 
boolean store() default false;# 
 
String searchAnalyzer() default "";# 
 
String indexAnalyzer() default "";# 
 
String[] ignoreFields() default {};# 
 
boolean includeInParent() default false;
}


프로파일

#es , es , 
spring.data.elasticsearch.cluster-name=elasticsearch
# Elasticsearch  , , , java 9300
spring.data.elasticsearch.cluster-nodes=localhost:9300
#  
spring.data.elasticsearch.properties.transport.tcp.connect_timeout=120s


springboot은 ES에 jpa 작업을 봉인했습니다.

package com.study.elasticsearch;

import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;

public interface EsRepository extends ElasticsearchRepository {
	
}


다음은 스프링의 일관된 태도입니다. jpa 호출

package com.study.elasticsearch;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import com.study.utils.Date;

@RestController
public class EsController {

	@Autowired
	private EsRepository esRepository;
	// 
	@GetMapping("save")
	public Domain save(String txt) {
		Domain Info = new Domain(Date.getDateyyyyMMdd(), "testTitle", Date.getDateyyyy_MM_dd(), txt);
		Domain save = esRepository.save(Info);
		return save;
	}
// id 
	@GetMapping("delete")
	public String delete(String id) {
		esRepository.deleteById(id);
		return "success";
	}
// , id 
	@GetMapping("update")
	public Domain update(String id, String txt) {
		Domain Info = new Domain(id, "NewTestTitle", Date.getDateyyyy_MM_dd(), txt);
		Domain save = esRepository.save(Info);
		return save;
	}
}


ES 를 시작한 다음 브라우저 get 에 액세스하여 데이터 증가

구글 브라우저 플러그인이 있어요. 좋아요. 한번 해볼게요.

좋은 웹페이지 즐겨찾기