Jump to content

Триграммный поиск

Триграммный поиск — это метод поиска текста, когда точный синтаксис или написание целевого объекта точно не известны. [1] или когда запросы могут быть регулярными выражениями . [2] Он находит объекты, соответствующие максимальному количеству трех последовательных строк символов (т. е. триграмм ) во введенных условиях поиска, которые обычно близки к совпадениям. [3] Можно ожидать, что две строки со многими общими триграммами будут очень похожими. [4] Триграммы также позволяют эффективно создавать индексы поисковых систем для поисков, которые являются регулярными выражениями или неточно соответствуют тексту. Индексы могут значительно ускорить поиск. [5] [6] Порог количества совпадений триграмм можно указать как точку отсечения после того, как результат не совпадает. [4]

Использование триграмм для ускорения поиска — это метод, используемый в некоторых системах для поиска кода в ситуациях, когда могут быть полезны запросы, являющиеся регулярными выражениями. [5] [2] [7] в поисковых системах, таких как Elasticsearch , [8] а также в таких базах данных, как PostgreSQL . [4]

Рассмотрим строку «Алиса». Триграммами строки будут «ali», «lic» и «ice», без пробелов. [5] Поиск этой строки в базе данных с индексом на основе триграмм потребует выяснения того, какие объекты содержат как можно больше из трех триграмм.

В качестве конкретного примера использования поиска по триграммам для поиска запроса по регулярному выражению рассмотрим поиск строки ab[cd]e, где скобки означают, что третий символ в искомой строке может быть c или d. В этой ситуации можно запросить индекс объектов, имеющих две триграммы. abc и bce или две триграммы abd и bde. Таким образом, поиск этого запроса не потребует сопоставления строк , а можно просто запросить индекс напрямую, что на практике может быть быстрее. [2]

См. также

[ редактировать ]
  1. ^ Хардарсон, Омар (1997). «Интерактивное кодирование экономической деятельности с использованием триграммного поиска в BLAISE III» (PDF) . Международная группа пользователей Blaise . Примечание. В этой статье рассматривается триграммный поиск как способ эффективного кодирования определенных видов экономических данных и обнаруживается, что этот метод особенно полезен, когда у пользователей системы мало контекста для структуры данных.
  2. ^ Jump up to: Перейти обратно: а б с Кокс, Расс (январь 2012 г.). «Сопоставление регулярных выражений с индексом триграммы или как работал поиск кода Google» .
  3. ^ Адамс, Элизабет; Мельцер, Арнольд (1 марта 1993 г.). «Триграммы как индексный элемент в полнотекстовом поиске: наблюдения и результаты экспериментов» . Материалы конференции ACM 1993 года по информатике - CSC '93 . стр. 433–439. дои : 10.1145/170791.170891 . ISBN  0897915585 . S2CID   16701550 .
  4. ^ Jump up to: Перейти обратно: а б с "F.33.pg_trgm" . Документация PostgreSQL . 12 мая 2022 г. Проверено 28 мая 2022 г.
  5. ^ Jump up to: Перейти обратно: а б с «Быстрый поиск с использованием текстовых индексов триграмм PostgreSQL» . ГитЛаб . 18 марта 2016 г. Проверено 28 мая 2022 г.
  6. ^ Зобель, Джастин; Моффат, Алистер; Сакс-Дэвис, Рон (1993). «Поиск в больших словарях частично определенных терминов с использованием сжатых инвертированных файлов» (PDF) . Конференция по очень большим базам данных (VLDB) . Примечание. В этой исследовательской работе не используется термин «поиск триграмм», но, похоже, это первый случай в литературе использования n-грамм в качестве индексов, и он цитируется в статье Расса Кокса как первый пример структуры обратный указатель на основе триграмм. В документе также приводятся успешные результаты использования этого стиля поиска.
  7. ^ «Большой Греп» . resources.sei.cmu.edu . Проверено 12 июня 2022 г. Также называется BigGrep. Использует n-граммы (не всегда 3),
  8. ^ «Токенизатор N-грамм | Руководство по Elasticsearch [8.2] | Elastic» . www.elastic.co . Проверено 28 мая 2022 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d5b755ee75802394854cdf67dd57535d__1719268020
URL1:https://arc.ask3.ru/arc/aa/d5/5d/d5b755ee75802394854cdf67dd57535d.html
Заголовок, (Title) документа по адресу, URL1:
Trigram search - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)