瀏覽代碼

feature 1001580

智能搜索搜索字段增加关键词与摘要
Kevin Jiang 2 年之前
父節點
當前提交
2f4e5785c1

+ 11 - 0
src/client/search.client.ts

@@ -0,0 +1,11 @@
+import type { SearchRequest } from "@/types/request.types";
+import httpClient from "@/services/httpClient";
+import * as urlHelper from "@/helpers/url.helper"
+import type { SearchResult } from "@/types/search.types";
+
+const _url = urlHelper.withPrefix("/gw/search/search")
+
+export async function search(query: SearchRequest): Promise<SearchResult> {
+  const resp = await httpClient.post(_url(), query)
+  return resp.data.data
+}

+ 11 - 9
src/services/search.service.ts

@@ -1,16 +1,18 @@
 import type {SearchResult} from "@/types/search.types";
 import type { SearchRequest } from "@/types/request.types";
-import type {Response} from "@/types/response.types";
-import type {AxiosResponse} from "axios";
-import httpClient from "./httpClient";
+import * as searchClient from "@/client/search.client"
 
-export function search(query: SearchRequest): Promise<AxiosResponse<Response<SearchResult>>> {
+export async function search(query: SearchRequest): Promise<SearchResult> {
   if (!query.dataSources) {
     query["dataSources"] = ["CN"];
   }
-  return httpClient.post("/gw/search/search", query);
+  const result = await searchClient.search(query)
+  if (result.docs && result.docs.length > 0) {
+    for (const doc of result.docs) {
+      if (doc.keywords == null) {
+        doc.keywords = []
+      }
+    }
+  }
+  return result
 }
-
-// export default {
-//     search
-// }

+ 1 - 1
src/stores/knowledge-graph.ts

@@ -64,7 +64,7 @@ export const useKnowledgeGraphStore = defineStore('knowledgeGraph', () => {
    */
   function search(name: string) {
     searchService.search({query: `TP=("${name}")`}).then((resp) => {
-      searchResult.value = resp.data.data;
+      searchResult.value = resp;
     });
   }
 

+ 5 - 5
src/stores/search.store.ts

@@ -9,16 +9,16 @@ export const useSearchStore = defineStore('search', () => {
   const yearAggResult: Ref<AggItem[] | null> = ref(null);
   const authorAggResult: Ref<AggItem[] | null> = ref(null);
 
-  function search(request: SearchRequest) {
+  async function search(request: SearchRequest) {
     return searchService.search(request).then((resp) => {
-      result.value = resp.data.data;
-    });
+      result.value = resp;
+    })
   }
 
   async function aggYear(request: SearchRequest) {
     try {
       const resp = await searchService.search(request);
-      yearAggResult.value = resp.data.data.aggs.year || [];
+      yearAggResult.value = resp.aggs.year || [];
     } catch (err) {
       console.log(err);
     }
@@ -27,7 +27,7 @@ export const useSearchStore = defineStore('search', () => {
   async function aggAuthor(request: SearchRequest) {
     try {
       const resp = await searchService.search(request);
-      authorAggResult.value = resp.data.data.aggs.AU || [];
+      authorAggResult.value = resp.aggs.AU || [];
     } catch (err) {
       console.log(err);
     }

+ 1 - 1
src/views/knowledgeGraph/KnowledgeGraphView.vue

@@ -90,7 +90,7 @@ onMounted(() => {
 
 // function searchSubject(name: string) {
 //   searchService.search({ "query": `TP=(${name})` }).then((resp) => {
-//     searchResult.value = resp.data.data;
+//     searchResult.value = resp;
 //   }).catch((err) => {
 //     console.error(err);
 //     message.warning('搜索学科分类遇到问题,请稍后再试');

+ 5 - 4
src/views/search/SearchView.vue

@@ -17,10 +17,11 @@ const onSearch = () => {
 }
 
 const fieldOptions = ref<SelectProps['options']>([
-  { value: 'TP', label: '主题', },
-  { value: 'TI', label: '标题', },
-  { value: 'AU', label: '作者', },
-  { value: 'KW', label: '关键词', },
+  { value: 'TP', label: '主题' },
+  { value: 'TI', label: '标题' },
+  { value: 'AU', label: '作者' },
+  { value: 'KW', label: '关键词' },
+  { value: 'AB', label: '摘要' },
 ]);
 </script>