feat: 系统启动自动创建索引并加载用户词典
This commit is contained in:
parent
fe700e2dc1
commit
5fee803eec
@ -7,12 +7,17 @@ import com.rymcu.forest.core.result.GlobalResultGenerator;
|
|||||||
import com.rymcu.forest.dto.ArticleDTO;
|
import com.rymcu.forest.dto.ArticleDTO;
|
||||||
import com.rymcu.forest.lucene.model.ArticleLucene;
|
import com.rymcu.forest.lucene.model.ArticleLucene;
|
||||||
import com.rymcu.forest.lucene.service.LuceneService;
|
import com.rymcu.forest.lucene.service.LuceneService;
|
||||||
|
import com.rymcu.forest.lucene.service.UserDicService;
|
||||||
import com.rymcu.forest.util.Utils;
|
import com.rymcu.forest.util.Utils;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* LuceneSearchController
|
* LuceneSearchController
|
||||||
@ -25,12 +30,27 @@ import java.util.List;
|
|||||||
public class LuceneSearchController {
|
public class LuceneSearchController {
|
||||||
|
|
||||||
@Resource private LuceneService luceneService;
|
@Resource private LuceneService luceneService;
|
||||||
|
@Resource private UserDicService dicService;
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
public GlobalResult createIndex() {
|
public void createIndex() {
|
||||||
System.out.println(">>>>>>>>>init index<<<<<<<<<<<");
|
ExecutorService executor = Executors.newSingleThreadExecutor();
|
||||||
luceneService.writeArticle(luceneService.getAllArticleLucene());
|
CompletableFuture<String> future =
|
||||||
return GlobalResultGenerator.genSuccessResult("创建索引成功");
|
CompletableFuture.supplyAsync(
|
||||||
|
() -> {
|
||||||
|
System.out.println(">>>>>>>>> 开始创建索引 <<<<<<<<<<<");
|
||||||
|
luceneService.writeArticle(luceneService.getAllArticleLucene());
|
||||||
|
System.out.println(">>>>>>>>> 索引创建完毕 <<<<<<<<<<<");
|
||||||
|
System.out.println("加载用户配置的自定义扩展词典到主词库表");
|
||||||
|
try {
|
||||||
|
dicService.writeUserDic();
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
System.out.println("加载用户词典失败,未成功创建用户词典");
|
||||||
|
}
|
||||||
|
return "索引成功创建";
|
||||||
|
},
|
||||||
|
executor);
|
||||||
|
future.thenAccept(System.out::println);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -47,4 +47,10 @@ public interface UserDicService {
|
|||||||
* @param userDic
|
* @param userDic
|
||||||
*/
|
*/
|
||||||
void updateDic(UserDic userDic);
|
void updateDic(UserDic userDic);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 写入字典至内存
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void writeUserDic() throws FileNotFoundException;
|
||||||
}
|
}
|
||||||
|
@ -51,7 +51,8 @@ public class UserDicServiceImpl implements UserDicService {
|
|||||||
writeUserDic();
|
writeUserDic();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeUserDic() {
|
@Override
|
||||||
|
public void writeUserDic() {
|
||||||
try {
|
try {
|
||||||
String filePath = "lucene/userDic/";
|
String filePath = "lucene/userDic/";
|
||||||
File file = new File(filePath);
|
File file = new File(filePath);
|
||||||
|
Loading…
Reference in New Issue
Block a user