Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Полнотекстовый поиск и индекс

Лекция



Привет, Вы узнаете о том , что такое полнотекстовый поиск, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое полнотекстовый поиск, полнотекстовый индекс , настоятельно рекомендую прочитать все из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL.

полнотекстовый поиск (англ. Full text searching, фр. Recherche en texte integral) — автоматизированный поиск документов, при котором поиск ведется не по именам документов, а по их содержимому, всему или существенной части.Многие веб-сайты и прикладные программы (например, программы для обработки текстов) предоставляют возможности полнотекстового поиска. Некоторые системы веб-поиска, такие как AltaVista, используют методы полнотекстового поиска, в то время как другие индексируют только часть веб-страниц, проверенных их системами индексации.

В текстовом поиске полнотекстовый поиск относится к методам поиска отдельного документа , хранящегося на компьютере , или коллекции в полнотекстовой базе данных . Полнотекстовый поиск отличается от поиска, основанного на метаданных или частях исходных текстов, представленных в базах данных (например, названиях, рефератах, выбранных разделах или библиографических ссылках).

При полнотекстовом поиске поисковая система проверяет все слова в каждом сохраненном документе, пытаясь соответствовать критериям поиска (например, тексту, указанному пользователем). Методы полнотекстового поиска появились в 1960-х годах, например IBM STAIRS с 1969 года, и стали обычным явлением в онлайн- библиографических базах данных в 1990-х годах. Многие веб-сайты и прикладные программы (например, текстовые редакторы) предоставляют возможности полнотекстового поиска. Некоторые поисковые системы, такие как бывшая AltaVista , используют методы полнотекстового поиска, в то время как другие индексируют только часть веб-страниц, проверенных их системами индексировани

полнотекстовый индекс

Первые версии программ полнотекстового поиска предполагали сканирование всего содержимого всех документов в поиске заданного слова или фразы. При использовании такой технологии поиск занимал очень много времени (в зависимости от размера базы), а в интернете был бы невыполним. Современные алгоритмы заранее формируют для поиска так называемый полнотекстовый индекс — словарь, в котором перечислены все слова и указано, в каких местах они встречаются. При наличии такого индекса достаточно осуществить поиск нужных слов в нем и тогда сразу же будет получен список документов, в которых они встречаются.

Реализации

MySQL

Полнотекстовые индексы в MySQL обозначаются как типом «FULLTEXT», который может применяться для столбцов типов «VARCHAR» и «TEXT». При массовом добавлении данных в таблицу с полями «FULLTEXT» индекс будет создаваться сразу, что замедлит работу, для избежания эффекта рекомендуется модернизировать поля уже после добавления.

Поиск выполняется с помощью функций MATCH() и AGAINST():

  SELECT * FROM articles WHERE MATCH (title, body) AGAINST ('поиск');

При этом поисковая фраза должна быть написана слово в слово (то есть «поиска», «поисковик» — невалидные варианты для примера выше)

Результат (жирным выделены найденные соответствия):

id title body
5 Регулярные выражения В большинстве реализаций регулярных выражений есть способ производить поиск фрагмента текста …
1 Полнотекстовой поиск Полнотекстовой поиск

Индексация

При работе с небольшим количеством документов система полнотекстового поиска может напрямую сканировать содержимое документов при каждом запросе . Об этом говорит сайт https://intellect.icu . Такая стратегия называется « последовательным сканированием ». Это то, что делают некоторые инструменты, такие как grep , при поиске.

Однако когда количество документов, подлежащих поиску, потенциально велико или количество выполняемых поисковых запросов существенно, задачу полнотекстового поиска часто разделяют на две задачи: индексирование и поиск. На этапе индексирования сканируется текст всех документов и строится список поисковых запросов (часто называемый индексом , но правильнее называть согласованием ). На этапе поиска при выполнении конкретного запроса используется только индекс, а не текст исходных документов.

Индексатор делает запись в указателе для каждого термина или слова, найденного в документе, и, возможно, отмечает его относительное положение в документе. Обычно индексатор игнорирует стоп-слова (такие как «the» и «and»), которые являются общими и недостаточно значимыми, чтобы их можно было использовать при поиске. Некоторые индексаторы также используют специфическую для языка основу индексируемых слов. Например, слова «ездит», «возил» и «ехал» будут записаны в указателе под одним понятийным словом «драйв».

Компромисс точности и полноты

Полнотекстовый поиск и индекс

Схема поиска с низкой точностью и малой запоминаемостью

Напомним, что измеряется количество релевантных результатов, полученных в результате поиска, а точность — это мера качества возвращаемых результатов. Напомним, это отношение возвращаемых релевантных результатов ко всем релевантным результатам. Точность — это отношение количества возвращенных релевантных результатов к общему количеству возвращенных результатов.

Диаграмма справа представляет поиск с низкой точностью и малой запоминаемостью. На диаграмме красные и зеленые точки обозначают общую совокупность потенциальных результатов поиска для данного поиска. Красные точки представляют собой нерелевантные результаты, а зеленые точки — значимые результаты. Релевантность определяется близостью результатов поиска к центру внутреннего круга. Из всех возможных результатов те, которые действительно были получены в результате поиска, показаны на голубом фоне. В примере был возвращен только 1 релевантный результат из 3 возможных релевантных результатов, поэтому коэффициент отзыва очень низкий — 1/3, или 33%. Точность для примера составляет очень низкую 1/4, или 25%, поскольку только 1 из 4 возвращенных результатов был релевантным.

Из-за неоднозначности естественного языка системы полнотекстового поиска обычно включают в себя такие опции, как стоп-слова для повышения точности и основы для увеличения запоминаемости. Поиск по контролируемому словарю также помогает устранить проблемы с низкой точностью, помечая документы таким образом, чтобы исключить двусмысленность. Компромисс между точностью и полнотой прост: повышение точности может снизить общую полноту, а увеличение полноты снижает точность.

Проблема ложного срабатывания

Полнотекстовый поиск, скорее всего, приведет к получению большого количества документов, которые не имеют отношения к заданному вопросу поиска. Такие документы называются ложными срабатываниями (см. ошибку I рода ). Поиск ненужных документов часто вызван присущей естественному языку двусмысленностью . На примере диаграммы справа ложноположительные результаты представлены нерелевантными результатами (красные точки), которые были возвращены поиском (на голубом фоне).

Методы кластеризации, основанные на байесовских алгоритмах, могут помочь уменьшить количество ложных срабатываний. По запросу «банк» можно использовать кластеризацию для категоризации совокупности документов/данных на «финансовое учреждение», «место для сидения», «место для хранения» и т. д. В зависимости от встречаемости слов, соответствующих категориям, Условия поиска или результаты поиска могут быть помещены в одну или несколько категорий. Этот метод широко применяется в сфере электронного обнаружения .

Улучшения производительности

Недостатки полнотекстового поиска были устранены двумя способами: путем предоставления пользователям инструментов, которые позволяют им более точно формулировать свои поисковые вопросы, и путем разработки новых алгоритмов поиска, которые повышают точность поиска.

Улучшенные инструменты запросов

  • Ключевые слова . Создателям документов (или обученным индексаторам) предлагается предоставить список слов, описывающих тему текста, включая синонимы слов, описывающих эту тему. Ключевые слова улучшают запоминаемость, особенно если список ключевых слов включает в себя искомое слово, которого нет в тексте документа.
  • Поиск с ограничением по полю . Некоторые поисковые системы позволяют пользователям ограничивать полнотекстовый поиск определенным полем в сохраненной записи данных , например «Название» или «Автор».
  • Булевы запросы . Поиски, в которых используются логические операторы (например, «энциклопедия» И «онлайн», а не «Энкарта» ), могут значительно повысить точность полнотекстового поиска. Оператор AND , по сути, говорит: «Не извлекайте документ, если он не содержит оба этих термина». Оператор NOT , по сути, говорит: «Не получать ни одного документа, содержащего это слово». Если список поиска извлекает слишком мало документов, для увеличения отзыва можно использовать оператор OR ; рассмотрим, например, «энциклопедию» И «онлайн» ИЛИ «Интернет», НЕ «Энкарту» . В результате поиска будут найдены документы об онлайн-энциклопедиях, в которых используется термин «Интернет» вместо «онлайн». Такое увеличение точности очень часто бывает контрпродуктивным, поскольку обычно сопровождается резкой потерей памяти.
  • Поиск фраз . Поиск по фразе соответствует только тем документам, которые содержат указанную фразу, например «Википедия, свободная энциклопедия».
  • Поиск концепции . Поиск, основанный на понятиях, состоящих из нескольких слов, например, «Обработка составных терминов» . Этот тип поиска становится популярным во многих решениях для обнаружения электронных данных.
  • Поиск соответствия . Поиск по соответствию создает алфавитный список всех основных слов, встречающихся в тексте , с их непосредственным контекстом.
  • Поиск близости . Фразовый поиск находит только те документы, которые содержат два или более слов, разделенных указанным количеством слов; поиск по запросу «Википедия» ВНУТРИ2 «бесплатно» приведет к получению только тех документов, в которых слова «Википедия» и «бесплатно» встречаются в пределах двух слов друг от друга.
  • Регулярное выражение . Регулярное выражение использует сложный, но мощный синтаксис запросов , который можно использовать для точного указания условий извлечения.
  • Нечеткий поиск будет искать документ, который соответствует заданным терминам и некоторым вариациям вокруг них (например, с использованием расстояния редактирования для ограничения множественных вариантов).
  • Поиск по шаблону . Поиск, при котором один или несколько символов в поисковом запросе заменяются подстановочным знаком, например звездочкой . Например, использование звездочки в поисковом запросе «s*n» позволит найти в тексте слова «sin», «son», «sun» и т. д.

Улучшенные алгоритмы поиска

Алгоритм PageRank , разработанный Google, придает больше внимания документам, на которые ссылаются другие веб-страницы . Дополнительные примеры см. в разделе Поисковая система .

Вау!! 😲 Ты еще не читал? Это зря!

  • Поисковый робот
  • Поисковый индекс
  • инверсный индекс
  • Индексация в поисковых системах

Исследование, описанное в статье про полнотекстовый поиск, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое полнотекстовый поиск, полнотекстовый индекс и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Ответы на вопросы для самопроверки пишите в комментариях, мы проверим, или же задавайте свой вопрос по данной теме.

создано: 2023-12-28
обновлено: 2023-12-28
132265



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL

Термины: Базы данных, знаний и хранилища данных. Big data, СУБД и SQL и noSQL