Po prostu napotkasz problem. Próbuję skonfigurować wyszukiwanie pełnotekstowe w zlokalizowanej zawartości (w szczególności w języku rosyjskim). Problemem jest domyślna konfiguracja (jak również moje niestandardowe) nie zajmuje się sprawami listowymi. Przykład:Postgresql wyszukiwanie pełnego tekstu tokenizer
SELECT * from to_tsvector('test_russian', 'На рынке появились новые рублевые облигации');
> 'На':1 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
'На' jest hasłem i powinno zostać usunięte, ale nawet nie zamienia się w wektor wynikowy. Jeśli mijam małe litery ciąg, wszystko poprawnie działa
SELECT * from to_tsvector('test_russian', 'на рынке появились новые рублевые облигации');
> 'новые':4 'облигации':6 'появились':3 'рублевые':5 'рынке':2
Pewnie, że może przejść pre-małe litery struny, ale instrukcja mówi
Prosty szablon słownik działa poprzez przekształcenie wejście tokena do małych liter i sprawdziany to przeciwko plikowi słów kończących.
Config russian_test
wygląda następująco:
create text search CONFIGURATION test_russian (COPY = 'russian');
CREATE TEXT SEARCH DICTIONARY russian_simple (
TEMPLATE = pg_catalog.simple,
STOPWORDS = russian
);
CREATE TEXT SEARCH DICTIONARY russian_snowball (
TEMPLATE = snowball,
Language = russian,
StopWords = russian
);
alter text search configuration test_russian
alter mapping for word
with russian_simple,russian_snowball;
Ale faktycznie uzyskać dokładnie takie same wyniki z wbudowanym russian
config.
Próbowałem ts_debug i tokenów traktowanych jako word
, jak się spodziewałem.
Wszelkie pomysły?