Jelajahi Sumber

search-service 恢复 hibernate
包名 javax.persistence 变更为 jakarta.persistence

对应 spring-data-jpa 版本变更
org.hibernate.search 版本从 6.2.4.Final 升级到 7.0.0.Final

对应 org.hibernate.search:hibernate-search-backend-lucene 版本变更
lucene 版本从 8.11.2 升级到 9.8.0

reghao 4 bulan lalu
induk
melakukan
0d9abf0302

+ 15 - 14
search/search-service/pom.xml

@@ -68,6 +68,17 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
         </dependency>
+        <!-- hibernate lucene -->
+        <dependency>
+            <groupId>org.hibernate.search</groupId>
+            <artifactId>hibernate-search-mapper-orm</artifactId>
+            <version>7.0.0.Final</version>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate.search</groupId>
+            <artifactId>hibernate-search-backend-lucene</artifactId>
+            <version>7.0.0.Final</version>
+        </dependency>
 
         <dependency>
             <groupId>org.springframework.boot</groupId>
@@ -80,35 +91,25 @@
         </dependency>
 
         <!-- lucene -->
-        <dependency>
-            <groupId>org.hibernate.search</groupId>
-            <artifactId>hibernate-search-mapper-orm</artifactId>
-            <version>6.2.4.Final</version>
-        </dependency>
-        <dependency>
-            <groupId>org.hibernate.search</groupId>
-            <artifactId>hibernate-search-backend-lucene</artifactId>
-            <version>6.2.4.Final</version>
-        </dependency>
         <dependency>
             <groupId>org.apache.lucene</groupId>
             <artifactId>lucene-core</artifactId>
-            <version>8.11.2</version>
+            <version>9.8.0</version>
         </dependency>
         <dependency>
             <groupId>org.apache.lucene</groupId>
             <artifactId>lucene-queryparser</artifactId>
-            <version>8.11.2</version>
+            <version>9.8.0</version>
         </dependency>
         <dependency>
             <groupId>org.apache.lucene</groupId>
             <artifactId>lucene-highlighter</artifactId>
-            <version>8.11.2</version>
+            <version>9.8.0</version>
         </dependency>
         <dependency>
             <groupId>com.github.magese</groupId>
             <artifactId>ik-analyzer</artifactId>
-            <version>8.5.0</version>
+            <version>9.8.0</version>
         </dependency>
 
         <!-- elasticsearch -->

+ 2 - 3
search/search-service/src/main/java/cn/reghao/tnb/search/app/config/MyLuceneAnalysisConfigurer.java

@@ -1,6 +1,5 @@
 package cn.reghao.tnb.search.app.config;
 
-import org.apache.lucene.analysis.Analyzer;
 import org.apache.lucene.analysis.charfilter.HTMLStripCharFilterFactory;
 import org.apache.lucene.analysis.core.LowerCaseFilterFactory;
 import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilterFactory;
@@ -8,17 +7,17 @@ import org.apache.lucene.analysis.snowball.SnowballPorterFilterFactory;
 import org.apache.lucene.analysis.standard.StandardTokenizerFactory;
 import org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurationContext;
 import org.hibernate.search.backend.lucene.analysis.LuceneAnalysisConfigurer;
-import org.wltea.analyzer.lucene.IKAnalyzer;
 import org.wltea.analyzer.lucene.IKTokenizerFactory;
 
 /**
+ * lucene 分词配置
+ *
  * @author reghao
  * @date 2025-03-20 11:13:33
  */
 public class MyLuceneAnalysisConfigurer implements LuceneAnalysisConfigurer {
     @Override
     public void configure(LuceneAnalysisConfigurationContext context) {
-        Analyzer ikAnalyzer = new IKAnalyzer();
         context.analyzer("ikAnalyzer").custom()
                 .tokenizer(IKTokenizerFactory.class)
                 .charFilter(HTMLStripCharFilterFactory.class)

+ 1 - 1
search/search-service/src/main/java/cn/reghao/tnb/search/app/db/repository/WenshuDocRepository.java

@@ -10,7 +10,7 @@ import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  * @author reghao
  * @date 2025-08-21 09:29:18
  */
-public interface WenshuDocRepository /*extends JpaRepository<WenshuDoc, Integer>, JpaSpecificationExecutor<WenshuDoc>*/ {
+public interface WenshuDocRepository extends JpaRepository<WenshuDoc, Integer>, JpaSpecificationExecutor<WenshuDoc> {
     Page<WenshuDoc> findByRegion(String region, Pageable pageable);
     Page<WenshuDoc> findByCourt(String court, Pageable pageable);
     WenshuDoc findByWenshuId(long wenshuId);

+ 2 - 2
search/search-service/src/main/java/cn/reghao/tnb/search/app/hibernate/HibernateLucene.java

@@ -5,14 +5,14 @@ import org.hibernate.search.mapper.orm.Search;
 import org.hibernate.search.mapper.orm.session.SearchSession;
 import org.springframework.stereotype.Service;
 
-import javax.persistence.EntityManagerFactory;
+import jakarta.persistence.EntityManagerFactory;
 import java.util.List;
 
 /**
  * @author reghao
  * @date 2025-04-02 09:49:21
  */
-//@Service
+@Service
 public class HibernateLucene {
     private final SearchSession searchSession;
 

+ 2 - 5
search/search-service/src/main/java/cn/reghao/tnb/search/app/hibernate/HibernateQuery.java

@@ -15,9 +15,8 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.Pageable;
 import org.springframework.stereotype.Service;
-import org.wltea.analyzer.lucene.IKAnalyzer;
 
-import javax.persistence.EntityManagerFactory;
+import jakarta.persistence.EntityManagerFactory;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -26,16 +25,14 @@ import java.util.stream.Collectors;
  * @date 2023-04-15 03:47:50
  */
 @Slf4j
-//@Service
+@Service
 public class HibernateQuery {
     private final SearchSession searchSession;
-    private final Analyzer analyzer;
     private final SimpleHTMLFormatter formatter;
     private WenshuDocRepository wenshuDocRepository;
 
     public HibernateQuery(EntityManagerFactory entityManagerFactory, WenshuDocRepository wenshuDocRepository) {
         this.searchSession = Search.session(entityManagerFactory.createEntityManager());
-        this.analyzer = new IKAnalyzer();
         this.formatter = new SimpleHTMLFormatter("<span style='color:red;'>", "</span>");
         this.wenshuDocRepository = wenshuDocRepository;
     }

+ 0 - 3
search/search-service/src/main/java/cn/reghao/tnb/search/app/lucene/LuceneSearch.java

@@ -1,11 +1,9 @@
 package cn.reghao.tnb.search.app.lucene;
 
-import cn.reghao.jutil.jdk.db.Page;
 import cn.reghao.jutil.jdk.db.PageList;
 import cn.reghao.tnb.search.app.config.ElasticProperties;
 import cn.reghao.tnb.search.app.model.vo.ElasticQuery;
 import cn.reghao.tnb.search.app.model.vo.LuceneQuery;
-import cn.reghao.tnb.search.app.model.vo.SearchResult;
 import cn.reghao.tnb.search.app.model.vo.VideoQuery;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.lucene.analysis.Analyzer;
@@ -15,7 +13,6 @@ import org.apache.lucene.index.DirectoryReader;
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.queryparser.classic.MultiFieldQueryParser;
-import org.apache.lucene.queryparser.classic.ParseException;
 import org.apache.lucene.queryparser.classic.QueryParser;
 import org.apache.lucene.search.*;
 import org.apache.lucene.search.highlight.*;

+ 1 - 1
search/search-service/src/main/java/cn/reghao/tnb/search/app/model/po/WenshuDoc.java

@@ -10,7 +10,7 @@ import org.hibernate.search.engine.backend.types.Highlightable;
 import org.hibernate.search.mapper.pojo.mapping.definition.annotation.FullTextField;
 import org.hibernate.search.mapper.pojo.mapping.definition.annotation.Indexed;
 
-import javax.persistence.*;
+import jakarta.persistence.*;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;

+ 2 - 2
search/search-service/src/main/java/cn/reghao/tnb/search/app/model/po/WenshuLegal.java

@@ -5,8 +5,8 @@ import lombok.Getter;
 import lombok.NoArgsConstructor;
 import lombok.Setter;
 
-import javax.persistence.Column;
-import javax.persistence.Embeddable;
+import jakarta.persistence.Column;
+import jakarta.persistence.Embeddable;
 
 /**
  * @author reghao

+ 1 - 1
search/search-service/src/main/java/cn/reghao/tnb/search/app/util/BaseEntity.java

@@ -5,7 +5,7 @@ import lombok.Setter;
 import org.hibernate.annotations.CreationTimestamp;
 import org.hibernate.annotations.UpdateTimestamp;
 
-import javax.persistence.*;
+import jakarta.persistence.*;
 import java.io.Serializable;
 import java.time.LocalDateTime;