#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»