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

Modified a search query for compatible between ES v2 and v5

Norio Suzuki 9 лет назад
Родитель
Сommit
4b6a6b1eae
1 измененных файлов с 10 добавлено и 6 удалено
  1. 10 6
      lib/util/search.js

+ 10 - 6
lib/util/search.js

@@ -19,6 +19,7 @@ function SearchClient(crowi, esUri) {
   this.client = new elasticsearch.Client({
     host: this.host,
     requestTimeout: 5000,
+    //log: 'debug',
   });
 
   this.registerUpdateEvent();
@@ -276,7 +277,7 @@ SearchClient.prototype.search = function(query)
 SearchClient.prototype.createSearchQuerySortedByUpdatedAt = function(option)
 {
   // getting path by default is almost for debug
-  var fields = ['path', '_id'];
+  var fields = ['path'];
   if (option) {
     fields = option.fields || fields;
   }
@@ -286,9 +287,9 @@ SearchClient.prototype.createSearchQuerySortedByUpdatedAt = function(option)
     index: this.index_name,
     type: 'pages',
     body: {
-      fields: fields,
       sort: [{ updated_at: { order: 'desc'}}],
       query: {}, // query
+      _source: fields,
     }
   };
   this.appendResultSize(query);
@@ -298,7 +299,7 @@ SearchClient.prototype.createSearchQuerySortedByUpdatedAt = function(option)
 
 SearchClient.prototype.createSearchQuerySortedByScore = function(option)
 {
-  var fields = ['path', '_id'];
+  var fields = ['path'];
   if (option) {
     fields = option.fields || fields;
   }
@@ -308,9 +309,9 @@ SearchClient.prototype.createSearchQuerySortedByScore = function(option)
     index: this.index_name,
     type: 'pages',
     body: {
-      fields: fields,
       sort: [ {_score: { order: 'desc'} }],
       query: {}, // query
+      _source: fields,
     }
   };
   this.appendResultSize(query);
@@ -338,9 +339,12 @@ SearchClient.prototype.appendCriteriaForKeywordContains = function(query, keywor
   query.body.query.bool.must.push({
     multi_match: {
       query: keyword,
+      // TODO: By user's i18n setting, change boost or search target fields
       fields: [
-        "path.ja^2", // ためしに。
-        "body.ja"
+        "path_ja^2",
+        "body_ja",
+        // "path_en",
+        // "body_en",
       ],
       operator: "and"
     }