Class FaqElasticService

java.lang.Object
com.bytedesk.kbase.llm_faq.elastic.FaqElasticService

@Service public class FaqElasticService extends Object
elasticsearch 全文检索服务
Author:
jackning
  • Field Details

    • elasticsearchOperations

      private final org.springframework.data.elasticsearch.core.ElasticsearchOperations elasticsearchOperations
    • faqRestService

      private final FaqRestService faqRestService
  • Constructor Details

    • FaqElasticService

      public FaqElasticService()
  • Method Details

    • updateIndex

      public void updateIndex(FaqRequest request)
    • updateAllIndex

      public void updateAllIndex(FaqRequest request)
    • indexFaq

      public void indexFaq(FaqEntity faq)
      索引FAQ实体到Elasticsearch
      Parameters:
      faq - 要索引的FAQ实体
    • deleteFaq

      public Boolean deleteFaq(String faqUid)
      从Elasticsearch中删除FAQ的索引
      Parameters:
      faqUid - 要删除的FAQ的UID
      Returns:
      是否删除成功
    • searchFaqInternal

      private List<FaqElasticSearchResult> searchFaqInternal(String query, String kbUid, String categoryUid, String orgUid, boolean isSuggest, Integer maxResults)
      搜索FAQ内容 - 私有辅助方法,处理两种搜索场景的共同逻辑
      Parameters:
      query - 搜索关键词
      kbUid - 知识库UID(可选)
      categoryUid - 分类UID(可选)
      orgUid - 组织UID(可选)
      isSuggest - 是否为输入联想模式
      maxResults - 最大结果数,为null则不限制
      Returns:
      搜索结果列表
    • addHighlight

      private void addHighlight(FaqElasticSearchResult result, String query, String question)
      为搜索结果添加高亮
    • searchFaq

      public List<FaqElasticSearchResult> searchFaq(String query, String kbUid, String categoryUid, String orgUid)
      搜索FAQ内容
      Parameters:
      query - 搜索关键词
      kbUid - 知识库UID(可选)
      categoryUid - 分类UID(可选)
      orgUid - 组织UID(可选)
      Returns:
      带权重的搜索结果列表和元数据
    • suggestFaq

      public List<FaqElasticSearchResult> suggestFaq(FaqRequest request)
      用户在输入过程中,给出输入联想