Pārlūkot izejas kodu

feat: set analyzer for elasticsearch (#2793)

* Feature: Custom configuration for elasticsearch

For better search results especially in Chinese, which the standard token analyzer may not work well.

* Set default analyzer in settings when building index

* Remove dangling comma
scienceasdf 4 gadi atpakaļ
vecāks
revīzija
d89224405c

+ 8 - 2
server/modules/search/elasticsearch/definition.yml

@@ -26,16 +26,22 @@ props:
     hint: The index name to use during creation
     default: wiki
     order: 3
+  analyzer:
+    type: String
+    title: Analyzer
+    hint: 'The token analyzer in elasticsearch'
+    default: simple
+    order: 4
   sniffOnStart:
     type: Boolean
     title: Sniff on start
     hint: 'Should Wiki.js attempt to detect the rest of the cluster on first connect? (Default: off)'
     default: false
-    order: 4
+    order: 5
   sniffInterval:
     type: Number
     title: Sniff Interval
     hint: '0 = disabled, Interval in seconds to check for updated list of nodes in cluster. (Default: 0)'
     default: 0
-    order: 5
+    order: 6
 

+ 10 - 1
server/modules/search/elasticsearch/engine.js

@@ -70,7 +70,16 @@ module.exports = {
             body: {
               mappings: (this.config.apiVersion === '6.x') ? {
                 _doc: idxBody
-              } : idxBody
+              } : idxBody,
+              settings: {
+                analysis: {
+                  analyzer: {
+                    default: {
+                      type: this.config.analyzer
+                    }
+                  }
+                }
+              }
             }
           })
         } catch (err) {