Полнотекстовый поиск Postgresql по словам с несколькими определенными символами

#postgresql

#postgresql

Вопрос:

вот проблема. При выполнении этого:

 select to_tsvector('simple', 'a.')
  

Мне нравится только один результат: ‘a’
потому что «.» — это «символ пробела»

Итак, мой вопрос заключается в том, каков наилучший способ удалить несколько символов из списка символов пробела для этого (простого) словаря или другого (недавно созданного). Я не могу найти системную базу данных или файл, в котором postgresql хранит эти символы.

Комментарии:

1. Может помочь указание проблемы.

2. Первый был неудачным, я пытался ответить на уже опубликованный вопрос. Теперь я создал новый.

Ответ №1:

Сначала вам нужно создать свою пользовательскую конфигурацию текстового поиска

 CREATE TEXT SEARCH CONFIGURATION your_fts (
    PARSER = pg_catalog."default" );
  

а затем добавьте сопоставление для пустых токенов

 ALTER TEXT SEARCH CONFIGURATION name
    ALTER MAPPING FOR blank WITH simple;
  

Таким образом, все пробелы и специальные символы будут переведены в tsvectors. Вероятно, это не то, что вы хотите. Вам нужно будет использовать пользовательский словарь или даже пользовательский анализатор, чтобы различать несколько ваших специальных символов.