powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Full Text Search вопрос к знатокам
6 сообщений из 6, страница 1 из 1
Full Text Search вопрос к знатокам
    #32045676
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итак, делаем сисистему помощи для web приложения - есть таблица WIHelpTopic а в ней поля

Title varchar(30)
Text text

Full text search утановлен и настроен на эти оба поля.
Теперь желаем найти все топики по поводу Agent и
Commission

Код: plaintext
1.
2.
SELECT * 
FROM WIHelpTopic 
WHERE CONTAINS(*,'agent and commission')


Так вот проблема в том, что если "agent" в [Title] а "commission" в [Text] - этот запрос ничего не возвращает.
А вернет он результат только для строк, у которых либо в
[Title] либо в [Text] есть оба этих слова - а это совсем не то, что нужно.

Можно конечно написать что-то типа
Код: plaintext
1.
2.
3.
4.
SELECT * 
FROM WIHelpTopic 
WHERE 
(CONTAINS(Title,'Commission or agent') and CONTAINS(text,'agent or Commission')) 
Or (CONTAINS(*,'Commission and agent'))


Но как вы понимаете, слов в строке может быть сколь угодно много в различных вариациях OR AND NOT. К тому же это решение подойтед только для вырианта двух полей.

Какой может быть выход из этой ситуации?
Как я понимаю, нужно искать как бы в одном поле.
Я попробовал сделать вычисляемое поле - комбинацию двух Title и Text - c мыслью навесить потом на это поле fulltext search index, однако во-первых не удается написать формулу - text не хочет складываться с varchar (приходится все конвертить жо varhcar(8000) - топик может быть и больше), а во-вторых fulltexsearch index не навешивается на вычисляемое поле (что в принципе понятно).


Знатоки могут что-лиюо посоветовать?
...
Рейтинг: 0 / 0
Full Text Search вопрос к знатокам
    #32045678
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что если запрос построить так:
Код: plaintext
1.
2.
SELECT * 
FROM WIHelpTopic 
WHERE CONTAINS(*,'agent') AND CONTAINS(*,'commission')

-- Слон
...
Рейтинг: 0 / 0
Full Text Search вопрос к знатокам
    #32045680
SM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще вопрос

Код: plaintext
1.
Server: Msg  7619 , Level  16 , State  1 , Line  2 
Execution of a full-text operation failed. A clause of the query contained only ignored words. 


Как подавить сообщение об ошибке ? Мне нужно просто вернуть пустой рекордсет если ничего не найдено не генерируя исключение для клиента
...
Рейтинг: 0 / 0
Full Text Search вопрос к знатокам
    #32045716
Фотография Lexis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если завернуть все в хранимую процедуру и там ловить твою ошибку?

if @@error<>0
begin
...
...
end
...
Рейтинг: 0 / 0
Full Text Search вопрос к знатокам
    #32045767
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это уже в процедуре.
в качестве параметра приходит строка поиска
Agent OR Reps AND Comission ... и т.д.
Ошибка не ловится, процедура останавливается на этом запросе и возникает исключение
...
Рейтинг: 0 / 0
Full Text Search вопрос к знатокам
    #32045935
Sergey Makarov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели никто не работал с Full Text Search?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Full Text Search вопрос к знатокам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]