mirror of https://github.com/halo-dev/halo
				
				
				
			Set open mode of indices to CREATE_OR_APPEND (#4020)
#### What type of PR is this? /kind bug /area core /milestone 2.6.x #### What this PR does / why we need it: On first start, we will receive an exception about post indices, please see the logs below: ```java 2023-06-01T10:49:57.191+08:00 INFO 7 --- [ task-1] run.halo.app.search.IndicesInitializer : Initialize post indices... 2023-06-01T10:49:57.352+08:00 ERROR 7 --- [-controller-t-1] reactor.core.publisher.Operators : Operator called default onErrorDropped reactor.core.Exceptions$ErrorCallbackNotImplemented: org.apache.lucene.index.IndexNotFoundException: no segments* file found in LockValidatingDirectoryWrapper(MMapDirectory@/root/.halo2/indices/posts lockFactory=org.apache.lucene.store.NativeFSLockFactory@3de15f4f): files: [write.lock] Caused by: org.apache.lucene.index.IndexNotFoundException: no segments* file found in LockValidatingDirectoryWrapper(MMapDirectory@/root/.halo2/indices/posts lockFactory=org.apache.lucene.store.NativeFSLockFactory@3de15f4f): files: [write.lock] at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1075) ~[lucene-core-9.5.0.jar:9.5.0 13803aa6ea7fee91f798cfeded4296182ac43a21 - 2023-01-25 16:44:59] at run.halo.app.search.post.LucenePostSearchService.removeAllDocuments(LucenePostSearchService.java:133) ~[classes/:2.6.0-SNAPSHOT] at run.halo.app.search.IndicesServiceImpl.lambda$rebuildPostIndices$0(IndicesServiceImpl.java:31) ~[classes/:2.6.0-SNAPSHOT] at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:73) ~[reactor-core-3.5.6.jar:3.5.6] at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:32) ~[reactor-core-3.5.6.jar:3.5.6] ``` The problem is caused by <https://github.com/halo-dev/halo/pull/3877>. This PR sets open mode of indices to `CREATE_OR_APPEND`, which should resolve the problem. #### Special notes for your reviewer: 1. Try to delete indices folder, such as `~/halo2-dev/indices` 2. Start Halo and check the log #### Does this PR introduce a user-facing change? ```release-note None ```pull/4026/head
							parent
							
								
									51816776ba
								
							
						
					
					
						commit
						ede1f2098d
					
				| 
						 | 
				
			
			@ -3,7 +3,6 @@ package run.halo.app.search.post;
 | 
			
		|||
import static org.apache.commons.lang3.StringUtils.stripToEmpty;
 | 
			
		||||
import static org.apache.lucene.document.Field.Store.NO;
 | 
			
		||||
import static org.apache.lucene.document.Field.Store.YES;
 | 
			
		||||
import static org.apache.lucene.index.IndexWriterConfig.OpenMode.APPEND;
 | 
			
		||||
import static org.apache.lucene.index.IndexWriterConfig.OpenMode.CREATE_OR_APPEND;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
| 
						 | 
				
			
			@ -116,7 +115,7 @@ public class LucenePostSearchService implements PostSearchService, DisposableBea
 | 
			
		|||
    @Override
 | 
			
		||||
    public void removeDocuments(Set<String> postNames) throws IOException {
 | 
			
		||||
        var writeConfig = new IndexWriterConfig(analyzer);
 | 
			
		||||
        writeConfig.setOpenMode(APPEND);
 | 
			
		||||
        writeConfig.setOpenMode(CREATE_OR_APPEND);
 | 
			
		||||
        try (var writer = new IndexWriter(postIndexDir, writeConfig)) {
 | 
			
		||||
            var terms = postNames.stream()
 | 
			
		||||
                .map(postName -> new Term(PostDoc.ID_FIELD, postName))
 | 
			
		||||
| 
						 | 
				
			
			@ -129,7 +128,7 @@ public class LucenePostSearchService implements PostSearchService, DisposableBea
 | 
			
		|||
    @Override
 | 
			
		||||
    public void removeAllDocuments() throws Exception {
 | 
			
		||||
        var writeConfig = new IndexWriterConfig(analyzer);
 | 
			
		||||
        writeConfig.setOpenMode(APPEND);
 | 
			
		||||
        writeConfig.setOpenMode(CREATE_OR_APPEND);
 | 
			
		||||
        try (var writer = new IndexWriter(postIndexDir, writeConfig)) {
 | 
			
		||||
            writer.deleteAll();
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue