From 8fdc7814d0450276362f6e1809c5813ceb90a7d4 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Tue, 5 Mar 2002 06:10:28 +0000
Subject: [PATCH] Please, apply attached patch for contrib/tsearch to 7.2.1 and
 current CVS. It  fix english stemmer's problem with ending words like
 'technology'.

We have found one more bug in english stemmer. The bug is with
'irregular'  english words like 'skies' -> 'sky'. Please, apply attached
cumulative patch to  7.2.1 and current CVS instead previous one.

Thank to Thomas T. Thai <tom@minnesota.com> for hard testing. This kind
of bug  has significance only for dump/reload database and viewing, but
searching/indexing works right.

Teodor Sigaev
---
 contrib/tsearch/dict/porter_english.dct | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/contrib/tsearch/dict/porter_english.dct b/contrib/tsearch/dict/porter_english.dct
index 1f809df9c8c..5158a9b8762 100644
--- a/contrib/tsearch/dict/porter_english.dct
+++ b/contrib/tsearch/dict/porter_english.dct
@@ -577,7 +577,7 @@ static void step_2(struct english_stemmer * z)
         case 'g':
             if (ends(z, "logi", 4))
             {   z->j++;                /*-NEW-*/ /*(Barry Wilkins)*/
-                r(z, "og", 3); break;
+                r(z, "og", 2); break;
             } /*-DEPARTURE-*/
 
      /* To match the published algorithm, delete this line */
@@ -683,7 +683,10 @@ static const char * english_stem(void * z_, const char * q, int i0, int i1)
 
 
     {   const char * t = search_pool(z->irregulars, z->k + 1, z->p);
-        if (t != 0) return t;
+        if (t != 0)  {
+		z->k = strlen(t) - 1;	
+		return t;
+	}
     }
 
     if (z->k > 1) /*-DEPARTURE-*/
-- 
GitLab