0

스프링 부트, 스프링 데이터 JPA (hibernate) 웹 어플리케이션을 가지고 있고 텍스트 검색 기능을 소개하고 싶다.하이버 네이트 검색 vs spring-data-solr, spring-data-elasticsearch

나는

  • 최대 절전 모드 검색이 내장 된 루씬 또는 외부 탄성 검색 작업 할 수 있습니다 내 응용 프로그램에 다음

    • 모두 최대 절전 검색이나 봄 - 데이터 - * 통합 할 수 있습니다 이해합니다.

    • 외부 탄성 검색/SOLR는 자신의 장점이 있지만 나는 시작하는 임베디드

      로 확인입니다.

    내 질문 라이브러리 쉽게 개발 및 유지 보수를 위해 더 나은

    • .
    • 나는 elasticsearch 대 SOLR의 많은 장점과 단점을 볼 수 있지만 대 프로 및 최대 절전 모드 검색 단점을 필요로 봄 - 데이터 - *
    • 내가 기존 응용 프로그램에서 최대 절전 모드 검색을 도입에 대한 예제를 발견했다. 하지만 하이버 네이트 개발자 오전부터 봄 - 데이터 - 에 아무것도, 색인화하거나 봄 - 데이터 - 기존 데이터베이스 데이터의 색인을 트리거하는 방법을
  • 답변

    1

    나는 분명히 편견없는거야,하지만 난 적어도 제공 할 수 있습니다 Hibernate Search에 중점을 둔 몇 가지 요소. "더 나은"것에 관해서는, 그것은 당신이 판단하는 것입니다.

    • 최대 절전 모드 검색 자동에 따라 전체 텍스트 인덱스 문서를// 업데이트를 추가, 삭제합니다

      의 주요 차이점은 최대 절전 모드 검색 JPA와 선택의 지수 (루씬 또는 Elasticsearch) 사이의 통합을 제공하는 것입니다 JPA 엔티티의 변경 사항 (트랜잭션을 커밋하는 즉시).

    • 최대 절전 모드 검색은 전체 텍스트 쿼리 (전체 텍스트 세계)를 구축하고 결과를 관리 엔터티 (JPA 세계)로 검색 할 수있게합니다.

    내가 아는 한, Spring-Data-Elasticsearch는 Elasticsearch 액세스에 중점을두고 있으며 JPA 통합이 전혀 없습니다. 즉, Spring-Data-JPA를 사용할 수 있으며 Spring-Data-Elasticsearch를 사용할 수 있지만 서로 통신하지는 않습니다. 별도로 업데이트하고 쿼리 할 두 개의 별도 모델이 있습니다.

    일부 다른 요소 :

    • 당신이 분산 된 인덱스를 필요로하지 않는 경우, Hibernate 검색 모든 Elasticsearch 스택없이, 임베디드 루씬 모드에서 실행할 수 있습니다. 아마 더 가벼울 것입니다.
    • 최대 절전 모드 검색은 현재 추상화 레이어로 인해 Elasticsearch 매핑을 사용자 지정하거나 고급 Elasticsearch 기능을 사용하는 경우 매우 유연하지 않습니다. 그래도 앞으로는 바뀔 것입니다. (Hibernate Search 6).
    • Spring-Data-HibernateSearch 모듈이 작동하고있어, 두 세계의 장점을 최대한 활용할 수 있습니다. 아직 출시되지 않았지만 아직 문서화되지 않았습니다. https://github.com/snowdrop/spring-boot-hibernate-search-booster