Hello,
I am using PostgreSQL 8.4 full text search in following way:
Custom FTS configuration called "dc2" with these dictionaries in
following order for asciihword token: latvian_ispell, english_stem,
russian_stem
Latvian ispell dictionary contains words with different endings but
same meaning (latvian langiage specifics, plural words, etc)
The problem starts when using wildcard :* to_tsquery syntax.
For example. If i look for the word "kriev" i am automatically adding
wildcard using syntax: to_tsquery('dc2', 'kriev:*');By searching kriev:* FTS founds word "krievs" in latvian_ispell
dictionary which is totally okei.
SELECT * from ts_debug('dc2', 'kriev:*'); alias | description | token |
dictionaries | dictionary | lexemes
-----------+-----------------+-------+----------------------------------------------------------+----------------+----------asciiword
|Word, all ASCII | kriev |
{latvian_ispell,english_stem,russian_stem} | latvian_ispell | {krievs}blank | Space symbols | :* | {}
If understand correctly now database uses not kriev:* but krievs:* for
following queries.
And here is the problem, data contains also word: Krievija, and in
this case search doesn't find it, because it looks for Krievs:* and
not Kriev:* anymore.
Is there any solution anone could suggest to get results by both
criterias - kriev:* (starting query) and krievs:* (founded in ispell
dict).
Only idea i had is to somehow combine two tsqueries one -
to_tsquery('dc2', 'kriev:*') and to_tsquery('english', 'kriev:*'); so
the search looks for both - kriev:* and krievs:* but anyway didnt
figured out any syntax i could use :(
Thanks