SearchTest.java 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. import ch.qos.logback.classic.Level;
  2. import ch.qos.logback.classic.Logger;
  3. import ch.qos.logback.classic.LoggerContext;
  4. import cn.reghao.jutil.tool.id.SnowFlake;
  5. import cn.reghao.tnb.content.api.constant.PostScope;
  6. import cn.reghao.tnb.search.app.SearchApplication;
  7. import cn.reghao.tnb.search.app.es.*;
  8. import cn.reghao.tnb.search.app.lucene.LuceneDocument;
  9. import cn.reghao.tnb.search.app.lucene.LuceneIndex;
  10. import cn.reghao.tnb.search.app.lucene.LuceneQuery;
  11. import cn.reghao.tnb.search.app.model.po.VideoText;
  12. import co.elastic.clients.elasticsearch._types.mapping.Property;
  13. import co.elastic.clients.elasticsearch.indices.AnalyzeRequest;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.junit.jupiter.api.Test;
  16. import org.slf4j.LoggerFactory;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.boot.test.context.SpringBootTest;
  19. import org.springframework.data.domain.Page;
  20. import org.springframework.data.domain.PageRequest;
  21. import org.springframework.test.context.ActiveProfiles;
  22. import java.io.IOException;
  23. import java.util.*;
  24. /**
  25. * @author reghao
  26. * @date 2025-03-18 15:51:21
  27. */
  28. @Slf4j
  29. @ActiveProfiles("dev")
  30. @SpringBootTest(classes = SearchApplication.class)
  31. public class SearchTest {
  32. void setLogLevel() {
  33. LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
  34. Logger rootLogger = loggerContext.getLogger("ROOT");
  35. rootLogger.setLevel(Level.INFO);
  36. }
  37. SnowFlake idGenerator = new SnowFlake(1, 1);
  38. @Autowired
  39. ElasticService elasticService;
  40. @Autowired
  41. IndexService indexService;
  42. @Autowired
  43. MappingService mappingService;
  44. @Autowired
  45. DocumentService documentService;
  46. @Test
  47. public void indexTest() throws IOException {
  48. String indexName = "video_text";
  49. indexService.deleteIndex(indexName);
  50. Map<String, Property> propertyMap = mappingService.getVideoTextPropertyMap();
  51. indexService.createIndex(indexName, propertyMap);
  52. }
  53. @Autowired
  54. VideoTextDocument videoTextDocument;
  55. @Test
  56. public void documentTest() {
  57. videoTextDocument.deleteAllDocument();
  58. }
  59. @Autowired
  60. LuceneQuery luceneQuery;
  61. @Autowired
  62. LuceneIndex luceneIndex;
  63. @Autowired
  64. LuceneDocument luceneDocument;
  65. @Autowired
  66. SearchService searchService;
  67. @Test
  68. public void storeTest() throws Exception {
  69. int pn = 1;
  70. int ps = 12;
  71. PageRequest pageRequest = PageRequest.of(pn-1, ps);
  72. String videoId = "ao1n8ggYOg";
  73. /*Document document = luceneIndex.getDocument(videoId);
  74. VideoSummary videoSummary = (VideoSummary) luceneDocument.getObject(VideoSummary.class, document);
  75. String title = "哈哈哈哈哈5哈哈哈哈4哈1";
  76. videoSummary.setTitle(title);
  77. videoSummary.setId("");
  78. videoSummary.setDescription("");
  79. Document document1 = luceneDocument.getVideoSummaryDoc(videoSummary);
  80. luceneIndex.updateIndex(videoId, document1);
  81. Document document2 = luceneIndex.getDocument(videoId);
  82. Object object2 = luceneDocument.getObject(VideoSummary.class, document2);*/
  83. String index = VideoText.class.getSimpleName().toLowerCase(Locale.ROOT);
  84. String kw = "隔壁";
  85. /*Page<VideoSummary> page = hibernateQuery.queryWithHighlight(kw, pn, ps);
  86. Page<VideoSummary> page1 = luceneQuery.queryWithHighlight("", kw, pn, ps);*/
  87. //Page<VideoSummary> page2 = esQuery.queryWithHighlight(index, kw, pn, ps, VideoSummary.class);
  88. System.out.println();
  89. //Map<String, Property> propertyMap = mappingService.getVideoTextPropertyMap();
  90. // indexService.deleteIndex(index);
  91. // indexService.createIndex(index, propertyMap);
  92. //indexService.getIndex(index);
  93. //indexService.deleteIndex(index);
  94. //indexService.getIndex(index);
  95. //indexService.updateMapping(index);
  96. //searchService.searchAll(index);
  97. //searchService.count(index);
  98. }
  99. @Autowired
  100. VideoTextQuery videoTextQuery;
  101. @Test
  102. public void searchTest() {
  103. int pageNumber = 1;
  104. String keyword = "隔壁";
  105. List<Integer> scopes = List.of(PostScope.PUBLIC.getCode(), PostScope.PROTECT.getCode());
  106. Page<VideoText> page = videoTextQuery.queryWithHighlight(keyword, scopes, pageNumber);
  107. long total = page.getTotalElements();
  108. List<VideoText> list = page.getContent();
  109. List<VideoText> list1 = videoTextQuery.queryByPage(pageNumber);
  110. System.out.println();
  111. }
  112. @Test
  113. public void analyzerTest() throws IOException {
  114. String text = "中华人民共和国国歌";
  115. String analyzer = "standard";
  116. analyzer = "ik_max_word";
  117. //analyzer = "ik_smart";
  118. AnalyzeRequest analyzeRequest = new AnalyzeRequest.Builder()
  119. .text(text)
  120. .analyzer(analyzer)
  121. .build();
  122. /*ElasticsearchClient esClient = elasticService.getElasticsearchClient();
  123. AnalyzeResponse analyzeResponse = esClient.indices().analyze(analyzeRequest);
  124. List<AnalyzeToken> tokens = analyzeResponse.tokens();*/
  125. }
  126. }