On 11/1/06, Teodor Sigaev <teodor@xxxxxxxxx> wrote: [snip]
Brain storm method: Develop a dictionary which returns all substring for lexeme, for example for word foobar it will be 'foobar fooba foob foo fo oobar ooba oob oo obar oba ob bar ba ar'. And make GIN functional index over your column (to save disk space).
[snip]
Time of search in GIN weak depend on number of words (opposite to tsearch2/GiST), but insertion of row may be slow enough....
With the right folding the number of possible trigrams for ascii text is fairly small.. much smaller than the number of words in used in a large corpus of text so the GIN performance for searches should be pretty good. Real magic would be to teach the regex operator to transparently make use of such an index. ;)