Merge "Actually assign suppression-related rights to 'suppress' group"
[lhc/web/wiklou.git] / includes / search / SearchIndexField.php
index 6f3b207..7bc4ba5 100644 (file)
@@ -4,16 +4,28 @@
  * @since 1.28
  */
 interface SearchIndexField {
-       /**
+       /*
         * Field types
         */
-       const INDEX_TYPE_TEXT = 0;
-       const INDEX_TYPE_KEYWORD = 1;
-       const INDEX_TYPE_INTEGER = 2;
-       const INDEX_TYPE_NUMBER = 3;
-       const INDEX_TYPE_DATETIME = 4;
-       const INDEX_TYPE_NESTED = 5;
-       const INDEX_TYPE_BOOL = 6;
+       /**
+        * TEXT fields are suitable for natural language and may be subject to
+        * analysis such as stemming.
+        *
+        * Read more:
+        * https://wikimediafoundation.org/2018/08/07/anatomy-search-token-affection/
+        * https://wikimediafoundation.org/2018/09/13/anatomy-search-variation-under-nature/
+        */
+       const INDEX_TYPE_TEXT = 'text';
+       /**
+        * KEYWORD fields are indexed without any processing, so are appropriate
+        * for e.g. URLs.  The content will often consist of a single token.
+        */
+       const INDEX_TYPE_KEYWORD = 'keyword';
+       const INDEX_TYPE_INTEGER = 'integer';
+       const INDEX_TYPE_NUMBER = 'number';
+       const INDEX_TYPE_DATETIME = 'datetime';
+       const INDEX_TYPE_NESTED = 'nested';
+       const INDEX_TYPE_BOOL = 'bool';
 
        /**
         * SHORT_TEXT is meant to be used with short text made of mostly ascii
@@ -21,7 +33,7 @@ interface SearchIndexField {
         * is used and aggressive splitting to increase recall.
         * E.g suited for mime/type
         */
-       const INDEX_TYPE_SHORT_TEXT = 7;
+       const INDEX_TYPE_SHORT_TEXT = 'short_text';
 
        /**
         * Generic field flags.