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

Откуда:
Сообщений: 645
Всем доброго дня!
Есть запросы для полнотекстового индекса типа
SELECT a.* FROM dbo.Articles a WHERE CONTAINS(a.*, ' FORMSOF(INFLECTIONAL,"Что-то 1")')

и
SELECT a.* FROM dbo.Articles a WHERE CONTAINS(a.*, ' FORMSOF(INFLECTIONAL,"Что-то 2")')

которые отлично отрабатывают и дают все словоформы
Если сделать запрос:
SELECT a.* FROM dbo.Articles a WHERE CONTAINS(* , 'NEAR( (Что-то 1,Что-то 2), 10, TRUE)');  

то отберутся только жестко заданные формы. А можно ли как-нибудь подружить NEAR и FORMSOF, чтоб в NEAR возвращал все формы "Что-то 1" и "Что-то 2"? Всем заранее благодарен за идеи! Всех дам с наступающим!!!
7 мар 17, 12:31    [20270540]     Ответить | Цитировать Сообщить модератору
 Re: Fulltext Search. Near + FORMSOF  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 4473
вопрос интересный, вот что пишут

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0215a192-34a5-458c-baa4-67d9d320194c/fulltext-search-formsofinflectional-word-with-near?forum=sqlsearch

автор
I believe that this just exceeds the complexity that SQL Server can manage with NEAR.

For example, FORMSOF(INFLECTIONAL,branch) returns 4 different words and FORMSOF(INFLECTIONAL,fell) returns 8 different words.

The documentation on NEAR states that it works only with simple_term and prefix_term. If you want to roll your own, you could use the sys.dm_fts_parser to collect all of the terms of each inflectional and cross join to build a large query string. A simple example result could be:

select * from TableWithTextToSearch
where contains(*, '"branch" NEAR "fall"')
OR contains(*, '"branch" NEAR "fell"')
OR contains(*, '"branches" NEAR "fall"')
OR contains(*, '"branches" NEAR "fell"')
7 мар 17, 12:58    [20270737]     Ответить | Цитировать Сообщить модератору
 Re: Fulltext Search. Near + FORMSOF  [new]
Bobby
Member

Откуда:
Сообщений: 645
Ролг Хупин,

Не поверите, именно dm_fts_parser сейчас и смотрю и прихожу к выводу, что только такой подход и спасет
7 мар 17, 13:00    [20270752]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить