瀏覽代碼

check if IndexWriter is open while getting IndexWriter

sunyj 7 年之前
父節點
當前提交
3c8f4a990e

+ 1 - 1
mall-search/src/main/java/com/uas/search/support/IndexWriterManager.java

@@ -57,7 +57,7 @@ public class IndexWriterManager {
 		}
 		startUsing(tableName);
 		IndexWriter indexWriter = indexWriters.get(tableName);
-		if (indexWriter == null) {
+		if (indexWriter == null || !indexWriter.isOpen()) {
 			// 此处用IK
 			IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
 			// 获取表对应的索引目录

+ 9 - 10
search-console-b2b/src/main/java/com/uas/search/console/b2b/support/IndexWriterManager.java

@@ -1,11 +1,8 @@
 package com.uas.search.console.b2b.support;
 
-import java.io.IOException;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
-
+import com.uas.search.b2b.service.SearchService.Table_name;
+import com.uas.search.console.b2b.util.ClassAndTableNameUtils;
+import com.uas.search.console.b2b.util.SearchUtils;
 import org.apache.lucene.index.IndexWriter;
 import org.apache.lucene.index.IndexWriterConfig;
 import org.apache.lucene.store.FSDirectory;
@@ -14,9 +11,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.wltea.analyzer.lucene.IKAnalyzer;
 
-import com.uas.search.b2b.service.SearchService.Table_name;
-import com.uas.search.console.b2b.util.ClassAndTableNameUtils;
-import com.uas.search.console.b2b.util.SearchUtils;
+import java.io.IOException;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * 对IndexWriter进行管理,防止同时有多个方法对索引进行修改,抛出LockObtainFailedException异常
@@ -59,7 +58,7 @@ public class IndexWriterManager {
 		}
 		startUsing(tableName);
 		IndexWriter indexWriter = indexWriters.get(tableName);
-		if (indexWriter == null) {
+		if (indexWriter == null || !indexWriter.isOpen()) {
 			// 此处用IK
 			IndexWriterConfig config = new IndexWriterConfig(new IKAnalyzer());
 			// 获取表对应的索引目录