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

Откуда:
Сообщений: 18
Добрый день!
Подскажите, пожалуйста, есть ли какая-то возможность использовать операторы OR, AND, NOT, NEAR, *, скобки и т.д. с FREETEXT? Например, чтобы найти строки, в которых присутствуют обязательно 2 слова на заданном расстоянии друг от друга.
Я знаю, что логические операторы можно использовать с CONTAINS, но CONTAINS не учитывает морфологии, а мне бы не хотелось в запрос вносить все словоформы искомых слов.
Может быть есть какие-то альтернативы CONTAINS и FREETEXT?
Спасибо
24 сен 14, 11:48    [16614791]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
Glory
Member

Откуда:
Сообщений: 104760
aryumin
Подскажите, пожалуйста, есть ли какая-то возможность использовать операторы OR, AND, NOT, NEAR, *, скобки и т.д. с FREETEXT?

А в хелпе http://msdn.microsoft.com/ru-ru/library/ms176078.aspx разве не ясно что-тот сказано по этому поводу ?
24 сен 14, 11:52    [16614821]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
aryumin
Member

Откуда:
Сообщений: 18
Glory
aryumin
Подскажите, пожалуйста, есть ли какая-то возможность использовать операторы OR, AND, NOT, NEAR, *, скобки и т.д. с FREETEXT?

А в хелпе http://msdn.microsoft.com/ru-ru/library/ms176078.aspx разве не ясно что-тот сказано по этому поводу ?


И что дальше? Я не про это спрашивал, неужели не ясно?
Я спросил есть ли альтернативы FREETEXT, которые позволят использовать в запросе логические операторы и при этом учитывать морфологию слов поискового запроса.
24 сен 14, 12:40    [16615193]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
Glory
Member

Откуда:
Сообщений: 104760
aryumin
Я спросил есть ли альтернативы FREETEXT

Какие альтернативы ?
Все команды полнотекстового поиска документированы.
Нет секретных команд.
24 сен 14, 12:43    [16615230]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
aryumin
Glory
пропущено...

А в хелпе http://msdn.microsoft.com/ru-ru/library/ms176078.aspx разве не ясно что-тот сказано по этому поводу ?


И что дальше? Я не про это спрашивал, неужели не ясно?
Я спросил есть ли альтернативы FREETEXT, которые позволят использовать в запросе логические операторы и при этом учитывать морфологию слов поискового запроса.


это freetext альтернатива
там рядом описан contains
24 сен 14, 13:10    [16615479]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
aryumin
Member

Откуда:
Сообщений: 18
Winnipuh
aryumin
пропущено...


И что дальше? Я не про это спрашивал, неужели не ясно?
Я спросил есть ли альтернативы FREETEXT, которые позволят использовать в запросе логические операторы и при этом учитывать морфологию слов поискового запроса.


это freetext альтернатива
там рядом описан contains


В CONTAINS нет учета морфологии при поиске... А мне как раз надо, чтобы и логические операторы и морфология была одновременно. Это возможно?
24 сен 14, 13:26    [16615612]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
Glory
Member

Откуда:
Сообщений: 104760
aryumin
В CONTAINS нет учета морфологии при поиске... А мне как раз надо, чтобы и логические операторы и морфология была одновременно. Это возможно?

Сейчас вы скажите, что про FORMSOF ( { INFLECTIONAL | THESAURUS } , <simple_term> [ ,...n ] ) тоже читали и ищите альтернативы ?
24 сен 14, 13:30    [16615641]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31432
aryumin
Я знаю, что логические операторы можно использовать с CONTAINS, но CONTAINS не учитывает морфологии
Разве не учитывает? По моему, учитывает.
24 сен 14, 13:31    [16615652]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
aryumin
Member

Откуда:
Сообщений: 18
Glory
aryumin
В CONTAINS нет учета морфологии при поиске... А мне как раз надо, чтобы и логические операторы и морфология была одновременно. Это возможно?

Сейчас вы скажите, что про FORMSOF ( { INFLECTIONAL | THESAURUS } , <simple_term> [ ,...n ] ) тоже читали и ищите альтернативы ?

Спасибо! чуть-чуть в них разобрался... Почитал инструкции по ним, но не понял, есть ли возможность сделать следующую конструкцию с помощью FORMSOF (INFLECTIONAL) и NEAR:
NEAR(((слово1 OR слово2), (слово3 OR слово4)), n)
То есть надо найти строки таблицы, в которых слово1 или слово2 (а также все их словоформы) встречаются на расстоянии не более n символов от слова 3 или слова 4. У меня не получается сделать такой запрос ни с использованием звездочки (слово1* OR слово2*) ни с использованием FORMSOF (INFLECTIONAL...

С одиночными словами (без OR) запросы работают нормально, но придется плодить множество таких запросов:

SELECT article
FROM [dbo].[name]
WHERE CONTAINS(article, 'NEAR(("слово 1*", "слово 3*"), 2) OR NEAR(("слово2*", "слово4*"), n)')

И это работает, но нужно несколько слов в запросе через OR и использовать NEAR

SELECT article
FROM [dbo].[univer_articles]
WHERE CONTAINS('FORMSOF(INFLECTIONAL,"студент")')

Помогите, пожалуйста, составить запрос указанного выше типа...
NEAR(((слово1 OR слово2), (слово3 OR слово4)), n) (с учетом словоформ слов)
8 окт 14, 12:28    [16675641]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
aryumin
Member

Откуда:
Сообщений: 18
aryumin
Glory
пропущено...

Сейчас вы скажите, что про FORMSOF ( { INFLECTIONAL | THESAURUS } , <simple_term> [ ,...n ] ) тоже читали и ищите альтернативы ?

Спасибо! чуть-чуть в них разобрался... Почитал инструкции по ним, но не понял, есть ли возможность сделать следующую конструкцию с помощью FORMSOF (INFLECTIONAL) и NEAR:
NEAR(((слово1 OR слово2), (слово3 OR слово4)), n)
То есть надо найти строки таблицы, в которых слово1 или слово2 (а также все их словоформы) встречаются на расстоянии не более n символов от слова 3 или слова 4. У меня не получается сделать такой запрос ни с использованием звездочки (слово1* OR слово2*) ни с использованием FORMSOF (INFLECTIONAL...

С одиночными словами (без OR) запросы работают нормально, но придется плодить множество таких запросов:

SELECT article
FROM [dbo].[name]
WHERE CONTAINS(article, 'NEAR(("слово 1*", "слово 3*"), 2) OR NEAR(("слово2*", "слово4*"), n)')

И это работает, но нужно несколько слов в запросе через OR и использовать NEAR

SELECT article
FROM [dbo].[univer_articles]
WHERE CONTAINS('FORMSOF(INFLECTIONAL,"студент")')

Помогите, пожалуйста, составить запрос указанного выше типа...
NEAR(((слово1 OR слово2), (слово3 OR слово4)), n) (с учетом словоформ слов)


Прошу прощения - "То есть надо найти строки таблицы, в которых слово1 или слово2 (а также все их словоформы) встречаются на расстоянии не более n символов от слова 3 или слова 4." - Имел ввиду n СЛОВ, а не символов
8 окт 14, 12:45    [16675774]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
Glory
Member

Откуда:
Сообщений: 104760
aryumin
Почитал инструкции по ним, но не понял, есть ли возможность сделать следующую конструкцию с помощью FORMSOF (INFLECTIONAL) и NEAR:
NEAR(((слово1 OR слово2), (слово3 OR слово4)), n)

Т.е. вы не прочитали про разницу между
<simple_term>
| <prefix_term>
| <generation_term>
| <proximity_term>
| <weighted_term>
8 окт 14, 13:05    [16675919]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
aryumin
Member

Откуда:
Сообщений: 18
Подскажите, пожалуйста, пример запроса для решения задачи, если таковой существует :-)
8 окт 14, 13:49    [16676262]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
Glory
Member

Откуда:
Сообщений: 104760
aryumin
Подскажите, пожалуйста, пример запроса для решения задачи, если таковой существует :-)

FTS не меряет физическое расстояние между лексемами в лексемах
Об этом тоже написано в хелпе.
8 окт 14, 14:03    [16676396]     Ответить | Цитировать Сообщить модератору
 Re: Использование логических операторов с FREETEXT  [new]
aryumin
Member

Откуда:
Сообщений: 18
Glory
aryumin
Подскажите, пожалуйста, пример запроса для решения задачи, если таковой существует :-)

FTS не меряет физическое расстояние между лексемами в лексемах
Об этом тоже написано в хелпе.


То есть я никак в MS SQL не смогу сделать запрос типа:
NEAR(((слово1 OR слово2), (слово3 OR слово4)), n) (с учетом словоформ слов)
?
8 окт 14, 14:35    [16676640]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить