User:Urfiner

Urfiner aka Nikolai Kochkin. You can find me in telegram: @Ulfberht

Extensions

Extensions mods

CirrusSearch

CirrusSearch search synonyms

That will add support for search synonyms on your wiki. That means, for example, that you will be able to find article "Tomato" by "pomodoro" request.


Modify extension:

 .../includes/Maintenance/AnalysisConfigBuilder.php  | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/includes/Maintenance/AnalysisConfigBuilder.php b/includes/Maintenance/AnalysisConfigBuilder.php
index 9a819579..ae2abec5 100644
--- a/includes/Maintenance/AnalysisConfigBuilder.php
+++ b/includes/Maintenance/AnalysisConfigBuilder.php
@@ -390,7 +390,7 @@ class AnalysisConfigBuilder {
 					// analyzer is the lack of english stop words.
 					'type' => 'custom',
 					'tokenizer' => 'standard',
-					'filter' => [ 'lowercase' ],
+					'filter' => [ 'lowercase', 'synonym' ],
 					'char_filter' => [ 'word_break_helper' ],
 				],
 				'plain_search' => [
@@ -491,6 +491,12 @@ class AnalysisConfigBuilder {
 					'tokenizer' => 'trigram',
 					'filter' => [ 'lowercase' ],
 				],
+				'synonym' => [ 
+					'type' => 'custom',
+					'tokenizer' => 'no_splitting',
+					'filter' => [ 'lowercase', 'synonym' ],
+				],
 			],
 			'filter' => [
 				'suggest_shingle' => [
@@ -530,6 +536,11 @@ class AnalysisConfigBuilder {
 					'type' => 'truncate',
 					'length' => self::KEYWORD_IGNORE_ABOVE,
 				],
+				'synonym' => [
+					'type' => 'synonym',
+					'synonyms_path' => '/path/to/elasticsearch/analysis/synonym.txt',
+				],
 			],
 			'tokenizer' => [
 				'prefix' => [

Modify

 /path/to/elasticsearch/analysis/synonym.txt

In format

word1, word1synonym1, synonym2
word2, word2synonym1

All in lowercase

After that:

cd extensions/CirrusSearch/maintenance

and

php UpdateSearchIndexConfig.php  --reindexAndRemoveOk --indexIdentifier=now