diff --git a/contrib/fulltextindex/README b/contrib/fulltextindex/README index 06ea57f53e7677d0f41168f0d63b6fc38bbabf8a..3137e932566e199aab61e83814438f9884668ed5 100644 --- a/contrib/fulltextindex/README +++ b/contrib/fulltextindex/README @@ -27,6 +27,9 @@ the fti-table and the orig-table, we can get the actual rows we want (this can also be done by using subselects, and maybe there're other ways too). +The trigger code also allows an array called StopWords, that prevents +certain words from being indexed. + As an example we take the previous query, where we assume we have all sub-strings in the table 'cds-fti': diff --git a/contrib/fulltextindex/fti.c b/contrib/fulltextindex/fti.c index 1131b6078b1699d722d8b5fca2fc9d1b02da5343..8d14f8f55c9f984d27fe7156fb23351f14ba9662 100644 --- a/contrib/fulltextindex/fti.c +++ b/contrib/fulltextindex/fti.c @@ -70,9 +70,11 @@ bool new_tuple = false; /* THIS LIST MUST BE IN SORTED ORDER, A BINARY SEARCH IS USED!!!! */ char *StopWords[] = { /* list of words to skip in indexing */ +#ifdef SAMPLE_STOP_WORDS "no" "the", "yes", +#endif }; /* stuff for caching query-plans, stolen from contrib/spi/\*.c */ @@ -331,6 +333,9 @@ is_stopword(char *text) StopLow = &StopWords[0]; /* initialize stuff for binary search */ StopHigh = endof(StopWords); + if (lengthof(StopWords) == 0) + return false; + while (StopLow <= StopHigh) { StopMiddle = StopLow + (StopHigh - StopLow) / 2;