Eu tenho um dicionário construído desta forma:
DROP TEXT SEARCH DICTIONARY IF EXISTS simple_english_with_stopwords CASCADE;
CREATE TEXT SEARCH DICTIONARY simple_english_with_stopwords (TEMPLATE = pg_catalog.simple);
CREATE TEXT SEARCH CONFIGURATION simple_english_with_stopwords (copy = english);
ALTER TEXT SEARCH CONFIGURATION simple_english_with_stopwords
ALTER MAPPING FOR asciihword, asciiword, hword, hword_asciipart, hword_part, word
WITH simple_english_with_stopwords;
que deve incluir não apenas termos genéricos, mas palavras de parada.
Com base nisso, estou esperando algo como:
SELECT to_tsvector('open plan') @@ to_tsquery('off <-> plan');
retornaria false
como off
não está no texto. Mas por algum motivo está voltando true
.
Se eu executar apenas:
# SELECT to_tsquery('off <-> plan');
to_tsquery
------------
'plan'
(1 row)
o que explica por que a expressão anterior está retornando true. Mas por que a consulta removeu o off
termo? Qualquer ideia?
Você criou um novo dicionário e tal, mas não o está usando .
Ou:
A primeira opção, mais detalhada, é melhor se você quiser usar índices FTS, caso contrário você terá problemas de mutabilidade.