Как теоретически искать триграммы в базе данных

#database #trigram

#База данных #триграмма

Вопрос:

У меня есть (теоретическая) база данных, и я храню триграммы определенных слов:

Пример:

 [Javascript] = [jav, ava, vas, asc, scr, cri, rip, ipt]
 

и т.д. … наряду со многими другими словами в текстовом поле…

Если я хочу найти сценарий, я ищу ВСЕ:

  [scr, cri, rip, ipt]
 

Но что я буду искать, если мне нужен «* script « или » script * « (что-нибудь до или после script)?

Пример: » *скрипт»

Я должен получить эти слова: [postscript, javascript, vscript, pscript] … и т. д

или » сценарий *»

Я должен получить эти слова: [scriptor, scripting, scriptly] … и т. д

Это не какая-то конкретная база данных, SQL или другая; Я просто пытаюсь понять теорию, лежащую в основе использования триграмм, и что с ними можно сделать.

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

1. При поиске «сценария» в примере показано, что требуются ВСЕ четыре триграммы. Должно ли быть условие ТОЛЬКО для этих четырех триграмм, иначе будет возвращено много других слов? В примере » script * «, по-видимому, есть нежелательный пробел между буквами «t» и «*», который, по-видимому, следует удалить, чтобы эти слова были возвращены.

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

3. Если у вас нет проблемы с кодированием, которую мы должны решить, я не вижу никакой проблемы или вопроса, которые мы могли бы решить.

4. Привет @donPablo. Существует проблема с кодированием. Мне интересно искать триграммы со словами, заканчивающимися на «script» и начинающимися на «script»