Xpoint
   [напомнить пароль]

Fulltext поиск с LIKE

Метки: [без меток]
2010-03-28 00:04:40 [обр] Alexey V.Zelenin(0/8)[досье]
Требуется осуществлять поиск по базе данных с использованием возможностей фуллтекста (словоформы, перестановка слов и т.п.) и LIKE конструкций одновременно. Есть ли какая-то возможность осуществить это на уровне MS SQL Server ?
спустя 14 часов [обр] Алексей Рюмин aka Dwarf(120/864)[досье]
USE AdventureWorks
GO
DECLARE @SearchWord varchar(30)
SET @SearchWord ='performance'
SELECT Description 
FROM Production.ProductDescription 
WHERE CONTAINS(Description, @SearchWord)
AND Description LIKE 't%'
например.
спустя 1 час 50 минут [обр] Alexey V.Zelenin(0/8)[досье]

Угу. А теперь предположим, что поиск ведётся по фразе 'Samsung G6'

Нужно, чтобы находились

"Samsung G6", "G6 Samsung", "Samsung G6884"

спустя 17 минут [обр] Алексей Рюмин aka Dwarf(120/864)[досье]
where field like '%Samsung%' and field like '%G6%'
спустя 3 минуты [обр] Алексей Рюмин aka Dwarf(120/864)[досье]
Или так:
set @words = 'Samsung G6'
set @cmd = 'select * from table '
   + 'where field like ''%' + replace(@words, ' ', '%'' and field like ''%') + '%'''
exec (@cmd)
спустя 29 минут [обр] Alexey V.Zelenin(0/8)[досье]
Получается, что собственно фултекст мы не используем. А как быть с вариантом а-ля фритекст? Если интересуют не только LIKE и перестановки слов, но словоформы, неполное вхождение текста?
спустя 22 часа [обр] Alexey V.Zelenin(0/8)[досье]
Думаю придётся пробовать комбинацию
  1. Фритекст поиск
  2. Поиск по Exact Like
  3. Поиск с LIKE при перестановке
  4. Поиск с LIKE поочерёдно разных слов, если первые три варианта не выдали достаточного количества ответов
Powered by POEM™ Engine Copyright © 2002-2005