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
비록 이 조회 과정은 완전하게 쓰여진 것은 아니지만, 그것은 그 몇 가지 조회의 차이를 소개하였으니, 한번 볼 만하다
추후에 좀 더 정리가 될지 안 될지.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
피폴라치 수열=>다양한 방법의 비교(분치, 귀속, 동적 기획/추이)이렇게 하면 피폴라치 수열에는 여러 가지 해법이 있을 수 있다. 일반적인 귀속 방법에는 많은 중복 계산이 존재한다.효율은 자연히 매우 낮다.예를 들어 f(n-1)를 계산할 때 이미 f(n-2)를 계산해 냈지만 귀환은...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.