Как мне использовать pg_trgm, чтобы быть более допустимым

Я использовал pg_trgrm для проверки совпадения строк, и я очень доволен результатами. Но это не совсем так, как я хочу. Я хочу, чтобы поиски типа "poduto" находили "продукты" (r отсутствовал). А также, что "sofáa" находит "диван". Я использую Posgresql 9,6.

Он находит "vermelho", когда я набираю "vermelo" (h отсутствует). И он находит "диван", когда я набираю "мягкий". Кажется, что только некоторые буквы в середине могут быть опущены, и я всегда могу пропустить окончательную букву. Я хочу быть в состоянии пропустить любую букву в середине слова. А также иметь возможность совершить "две ошибки" в случае софы и софы (я использовал акцент и использовал еще одну "а").

1 ответ

Решение состоит в том, чтобы снизить pg_trgm.similarity_threshold (или же pg_trgm.word_similarity_threshold если вы используете <% или же %>).

Тогда слова с более низким сходством также будут найдены.

Другие вопросы по тегам