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



    
rambler's top100 Rambler's Top100