Просмотр исходного кода

Merge pull request #4399 from weseek/feat/77523-get-snippet-that-set-in-elasticsearch

Feat: 77523 get snippet that set in elasticsearch
Sizma yosimaz 4 лет назад
Родитель
Сommit
6ace47ab2e
1 измененных файлов с 18 добавлено и 2 удалено
  1. 18 2
      packages/app/src/server/service/search-delegator/elasticsearch.js

+ 18 - 2
packages/app/src/server/service/search-delegator/elasticsearch.js

@@ -551,7 +551,12 @@ class ElasticsearchDelegator {
         results: result.hits.hits.length,
       },
       data: result.hits.hits.map((elm) => {
-        return { _id: elm._id, _score: elm._score, _source: elm._source };
+        return {
+          _id: elm._id,
+          _score: elm._score,
+          _source: elm._source,
+          _highlight: elm.highlight,
+        };
       }),
     };
   }
@@ -856,6 +861,17 @@ class ElasticsearchDelegator {
     };
   }
 
+  appendHighlight(query) {
+    query.body.highlight = {
+      fields: {
+        '*': {
+          fragment_size: 30,
+          fragmenter: 'simple',
+        },
+      },
+    };
+  }
+
   async searchKeyword(queryString, user, userGroups, option) {
     const from = option.offset || null;
     const size = option.limit || null;
@@ -869,7 +885,7 @@ class ElasticsearchDelegator {
     this.appendResultSize(query, from, size);
 
     this.appendFunctionScore(query, queryString);
-
+    this.appendHighlight(query);
     return this.search(query);
   }