(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Основы полнотекстового поиска

Источник: realcoding

Основы полнотекстового поиска

Я создал полнотекстовый индекс в таблице и у меня есть несколько вопросов о возможностях компонента полнотекстового поиска в SQL Server. Во-первых, работает ли полнотекстовый поиск с суффиксами (т.е. можно ли по фразе * mation  отыскать такое слово, как  information )? Во-вторых, можно ли с помощью полнотекстового поиска находить слова, расположенные рядом друг с другом? Если да, то сколько слов максимально могут разделять искомые слова? В-третьих, как модифицировать список "словесного шума"?

На первый вопрос ответ следующий: непосредственно использовать поиск по суффиксу нельзя. Однако это ограничение можно обойти двумя способами. Во-первых, с помощью предиката LIKE в выражениях типа WHERE mytext LIKE N'%suffix ' . Однако использование LIKE приводит к сканированию всех строк таблицы, в которой проводится поиск, и это может сказаться на производительности. Во-вторых, можно продублировать и проиндексировать данные в обратном порядке (т.е. imagination становится  noitanigami ), а затем выполнить поиск по  noitani* .

Ответ на второй вопрос - да,  поиск с зазором ( proximity search  - вид поиска, при котором пользователь указывает, на каком расстоянии друг от друга должны располагаться ключевые слова в документе) возможен. Вот пример использования такого поиска:

USE pubs
GO
SELECT title, notes
FROM titles
WHERE CONTAINS (notes, 'user NEAR computers')
GO

Вы можете использовать знак тильды (~) и различные сочетания постфиксных операторов. Дополнительную информацию по этому вопросу можно найти в статье "Searching for Words or Phrases Close to Another Word or Phrase (Proximity Term)" в SQL Server  Books Online  -  BOL . Оценочные значения, которые возвращаются при поиске, зависят от ключевого слова NEAR. Если использовать оператор CONTAINSTABLE, то можно получить эти оценочные значения и продолжить эксперимент с поиском.

Для ответа на третий вопрос вспомним, что символы разрыва слов - это неотъемлемая часть используемого языка программирования, и вы можете модифицировать список  словесного шума  ( noise-word ). Словесный шум - это слова, которые автоматически исключаются из запроса на полнотекстовый поиск. Например, из обычного запроса исключаются слова типа  a, and, the . В статье "Full-Text Index and Querying Concepts" в  BOL  поясняется, как изменить список словесного шума. Необходимо быть внимательным при модификации списка, так как если допустить в запросе большее количество слов, размер индекса может сильно возрасти.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 19.07.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
Microsoft Office 365 Профессиональный Плюс. Подписка на 1 рабочее место на 1 год
Microsoft 365 Business Basic (corporate)
Microsoft 365 Apps for business (corporate)
Microsoft 365 Business Standard (corporate)
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Вопросы и ответы по MS SQL Server
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100