Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Непонятки с полнотекстовым поиском  [new]
Bobby
Member

Откуда:
Сообщений: 638
Всем доброго дня!!!!!
Есть вот такой полнотекстовый запрос запрос, к примеру:
  SELECT 
  *
    FROM dbo.Articles
  where 
  CONTAINS(*, ' FORMSOF (INFLECTIONAL, "интер РАО") ')
  AND 
  id_obj_job=83


все замечательно отрабатывает. Но стоит подать вот в таком виде:

  SELECT 
  *
    FROM dbo.Articles
  where 
  CONTAINS(*, ' FORMSOF (INFLECTIONAL, "НО РАО") ')
  AND 
  id_obj_job=83

то на выходе получаю гору записей, где есть упоминание "РАО". Судя по всему, игнорируется "НО", т.к. не воспринимается (где-то об этом читал). Можно ли это как-то побороть? Заранее благодарен за помощь
30 сен 14, 12:31    [16637966]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bobby
Судя по всему, игнорируется "НО", т.к. не воспринимается (где-то об этом читал). Можно ли это как-то побороть?

Stopwords and Stoplists

To prevent a full-text index from becoming bloated, SQL Server has a mechanism that discards commonly occurring strings that do not help the search. These discarded strings are called stopwords. During index creation, the Full-Text Engine omits stopwords from the full-text index. This means that full-text queries will not search on stopwords.

вы как-то определяли для своего FTS, как ему работать с шумовыми словами ?
30 сен 14, 12:36    [16637996]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Bobby
Member

Откуда:
Сообщений: 638
Glory,
не определял, конечно. Подскажите, плз, как это делается?
30 сен 14, 12:37    [16638005]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bobby
Подскажите, плз, как это делается?

Открываете статью Stopwords and Stoplists и читаете
30 сен 14, 12:39    [16638015]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Bobby
Member

Откуда:
Сообщений: 638
Glory,
Со стоплистом разобрался. а теперь вопрос в догонку. у меня запрос формируется динамически и в какой-то момент выяснилось, что в качестве фразы для поиска подалась фраза ФГУП "РосРАО", соответственно получил вот такой текст запроса:
SELECT 
  *
 FROM dbo.Articles
  where 
  CONTAINS(*, ' FORMSOF (INFLECTIONAL, "ФГУП "РосРАО"") ')
  AND 
  id_obj_job=83
  AND date_art BETWEEN '2014-09-01' AND '2014-09-30'

на что получил логичную ошибку :
Syntax error near 'РосРАО' in the full-text search condition ' FORMSOF (INFLECTIONAL, "ФГУП "РосРАО"") '.
Как можно это побороть? Спасибо
30 сен 14, 14:11    [16638642]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bobby
Как можно это побороть?

Проверять то, что вы получили в качестве критерия для поиска ?
30 сен 14, 14:12    [16638658]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Bobby
Member

Откуда:
Сообщений: 638
Glory,
Проверить не сложно. Выяснил, что на вход должно уйти ФГУП "РосРАО", а дальше-то что с этим делать, как поиск осуществить именно по этой фразе? Пользователю же не объяснишь, что при закладке текста не используйте такие кавычки...
30 сен 14, 14:17    [16638694]     Ответить | Цитировать Сообщить модератору
 Re: Непонятки с полнотекстовым поиском  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bobby
Пользователю же не объяснишь, что при закладке текста не используйте такие кавычки...

Есть правила. Их надо выполнять.
Либо пользователь их выполняет, либо ваш программный код принуждает к выполнению
30 сен 14, 14:21    [16638723]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить