spring-data는elasticsearch의 구덩이를 사용합니다

1818 단어 수필.
[배경]
springboot2, 안에 이미 JPA의 DAO층이 있는데, 지금은 ES를 추가하여 단어 검색과 관련성 추천을 실현하고자 합니다.
 
구덩이
1, 전에 두 개의 DAO, 한 개의 ESDAO, 한 개의 일반 DAO를 쓰고 한 개의 포조를 공용하려고 했는데 안 돼요. 자꾸 충돌해요.그래서 포조 두 개 썼어요.
해결:esrepository 쓰기는 jparepository와 일모입니다.그리고 Dao층에는 xxDAO, xxESDAO, 포조층에는 xx, xxES가 있습니다.
 
2. 디버깅 과정에서 제 포조는 자주 (xxES)하기 때문에es는 유형 일치 오류를 보고합니다.왜냐하면 이전에 이미 그 indexname이 있었는데 나중에 바뀌었기 때문이다(속성을 추가하거나 감소), 이전의 것과 일치하지 않기 때문이다.
해결: indexname(pojo에서 바꿀 수도 있고,kibnan에서 그 indexname delete를 바꾸고 프로젝트를 다시 시작할 수도 있습니다(프로젝트를 다시 시작할 때spring은 ES에 연결되어 index를 생성합니다)
index를 삭제하면 이것을 볼 수 있습니다:https://www.lagou.com/lgeduarticle/8326.html
 
3, ES의 시간 유형, 정말 악몽.내 이전 DAO 안의 시간(yyyy-MM-dd HH:mm:ss)과 줄곧 일치하지 않는다.나중에 마침내 쓸 만한 것을 찾았다.
해결: 포조의 시간은 다음과 같다.
@Field(type=FieldType.Date)
@JsonFormat (shape = JsonFormat.Shape.STRING, pattern ="yyyy-MM-dd'T'HH:mm:ssZ",timezone = "GMT+8")

그리고 시간 전환은 상관하지 마세요. Date 유형을 자동으로 이런 pattern으로 전환시켜요. 뒤에 있는 GMT+8은 시간에 8시간을 더해요. 빼보면 왜 넣었는지 알 수 있어요.
시간의 표시에 대해 나는 JS로 yyy-MM-dd HH:mm:ss로 표시하는데 이런 방식은 비록 과학적이지는 않지만.느낌이 제일 좋아요.
 
4, ES 배포 후 관리
(1) ES는 자바 프로그램으로 linux에서 JPS로 id 번호를 찾을 수 있습니다
(2) 탑으로 ES의 메모리 사용 상황을 볼 수 있는데 고정 메모리인 것 같은데?
(3) 데이터가 일치하지 않으면 삭제할 수 있다.
POST /indexname/type/_delete_by_query?pretty
{
    "query": {
        "match_all": {
        }
    }
}

indexname, type을 직접 변경합니다.type의 데이터를 삭제할 수 있지만 type의 구조를 보존합니다.(만약 데이터베이스 데이터와 ES가 통일되지 않으면 ES를 지우고 다시 얻을 수 있다)curl 명령으로 linux 단자에서 직접 실행할 수 있다
 
【후속】
현재 ES의 첨삭 수정이 끝났는데 조회도 사실 좀 엉망이고 방법이 많아서 눈이 어지럽다.
검색은 다음과 같습니다.https://www.cnblogs.com/wenbronk/p/6432990.html
비록 이 조회 과정은 완전하게 쓰여진 것은 아니지만, 그것은 그 몇 가지 조회의 차이를 소개하였으니, 한번 볼 만하다
 
추후에 좀 더 정리가 될지 안 될지.

좋은 웹페이지 즐겨찾기