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

Откуда:
Сообщений: 104751
grigrim
Задача - найти все записи, где есть слова с префиксами "ввв" и "ггг" в любых комбинациях и последовательностях. Слово "и" можно игнорировать.
Сейчас сначала парсится входящий текст для поиска ('ввв и ггг'), получается '"ввв*" & "и*" & "ггг*"'. Получается, это неверно. Нужно как-то по-другому составлять условие для поиска. Но как, не понятно.

Для этого есть документированные предикаты AND > | < AND NOT > | < OR | NEAR
Вы хелп по CONTAINS открывали ?

grigrim
Я согласен.

Странно. Сначала вы уверяли, что два одинаковых запроса к разным каталогам дают разные результаты

Сообщение было отредактировано: 17 окт 11, 14:44
17 окт 11, 14:41    [11451854]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
Для этого есть документированные предикаты AND > | < AND NOT > | < OR | NEAR
Вы хелп по CONTAINS открывали ?

Конечно открывал. AND это то же самое что &, который я и использую. Как вы предлагаете написать запрос?

Glory
Странно. Сначала вы уверяли, что два одинаковых запроса к разным каталогам дают разные результаты

Так и есть. В результате первого запроса есть слова, начинающиеся с буквы "и", а во втором их нет. Вот и вся разница. А найти требуется запись, где нет слов, начинающихся с буквы "и".
17 окт 11, 14:54    [11451990]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Конечно открывал. AND это то же самое что &, который я и использую. Как вы предлагаете написать запрос?


зачем тогда еще и свое "и" писать в дополнение к AND ?

grigrim
Так и есть. В результате первого запроса есть слова, начинающиеся с буквы "и", а во втором их нет. Вот и вся разница. А найти требуется запись, где нет слов, начинающихся с буквы "и".

Интересно и почему, если содержимое каталогов по-вашим словам одинаковое ?
17 окт 11, 14:56    [11452011]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
зачем тогда еще и свое "и" писать в дополнение к AND ?

Это не я его пишу, а пользователь вбивает в форму для поиска. А мне нужно как-то обрабатывать любые строки, содержат они "и" или нет.

Glory
Интересно и почему, если содержимое каталогов по-вашим словам одинаковое ?

Оно не одинаковое, а имеет общие записи.
17 окт 11, 15:09    [11452146]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Это не я его пишу, а пользователь вбивает в форму для поиска. А мне нужно как-то обрабатывать любые строки, содержат они "и" или нет.


А * кто к кажому слову добавляет ?
17 окт 11, 15:18    [11452253]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
А * кто к кажому слову добавляет ?

Я. А что вы предлагаете? Не к каждому слову * добавлять? Или к каждому, но исключать отдельные слова?
17 окт 11, 16:47    [11453321]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Я. А что вы предлагаете? Не к каждому слову * добавлять? Или к каждому, но исключать отдельные слова?

А вы думаете,что сервер за вас все это сделает ?
Сервер искал то, что вы ему указали искать
17 окт 11, 16:55    [11453390]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
А вы думаете,что сервер за вас все это сделает ?
Сервер искал то, что вы ему указали искать
Вообще-то сервер сам исключает шумовые слова, если искать не по префиксам, т.е. например так: "ввв и ггг".
Я спрашивал, есть ли способ создать запрос, чтобы сервер также исключал шумовые слова при поиске по префиксам.
Можно, конечно, вывернуться и написать примерно такой запрос:
DECLARE @szSearch_ VARCHAR(50) = '"ввв и ггг"'
SELECT @szSearch_ =
STUFF(REPLACE(
	(select distinct ' ""'+display_term+'*"'
	from sys.dm_fts_parser (@szSearch_, 1049, 5,0)
	where special_term = 'Exact Match'
	for xml path(''))
, '""', '&"'), 1, 2, '')

SELECT * FROM View1 WHERE CONTAINS(*, @szSearch_)
Но, возможно, есть более грамотный способ. Об этом я и спрашиваю.
17 окт 11, 17:01    [11453450]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Вообще-то сервер сам исключает шумовые слова, если искать не по префиксам, т.е. например так: "ввв и ггг".

Интересно, как он это сделает, если вы меняете искомую фразу с "ввв и ггг" на "ввв* и* ггг*" ?

grigrim
Я спрашивал, есть ли способ создать запрос, чтобы сервер также исключал шумовые слова при поиске по префиксам.

Не менять шумовые слова на другие ?
17 окт 11, 17:05    [11453483]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
Интересно, как он это сделает, если вы меняете искомую фразу с "ввв и ггг" на "ввв* и* ггг*" ?
Вот я и спрашиваю, как лучше написать запрос, чтобы сервер самостоятельно исключал шумовые слова.
Glory
Не менять шумовые слова на другие ?
Тогда сервер не будет искать по префиксам и будет искать записи со словами указанными строго в том порядке, как и в поисковой строке.
17 окт 11, 17:14    [11453561]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
Вы хотите противоположные вещи - чтобы сервер как то извлек шумовые слова из подмененной вами строки поиска
17 окт 11, 17:40    [11453819]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
Вы хотите противоположные вещи - чтобы сервер как то извлек шумовые слова из подмененной вами строки поиска

Я готов отказаться от подмены строки. Как тогда добиться того, чтобы выдавались строки с всевозможными вариациями слов для поиска?
17 окт 11, 17:49    [11453901]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
iljy
Member

Откуда:
Сообщений: 8711
grigrim,

для начала определитесь, что для вас шумовые слова. Почему и - шумовое, а ввв - нет?
17 окт 11, 17:53    [11453935]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Я готов отказаться от подмены строки. Как тогда добиться того, чтобы выдавались строки с всевозможными вариациями слов для поиска?

Вы для начала определитесь - ищите вы точно то,что задал пользователь, или сначала приводите ввод пользователя к синтаксису TFS
17 окт 11, 18:02    [11454046]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
iljy
grigrim,

для начала определитесь, что для вас шумовые слова. Почему и - шумовое, а ввв - нет?
Я использую отдельный список стоп-слов, в котором, как и в системном, слово "и" является стоп-словом. "ввв" также вполне может оказаться стоп-словом, тогда оно тоже должно исключаться.
17 окт 11, 18:08    [11454087]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
iljy
Member

Откуда:
Сообщений: 8711
grigrim,

ну так и исключайте его, только до того, как превратите в шаблон.
17 окт 11, 18:11    [11454107]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
Glory
Вы для начала определитесь - ищите вы точно то,что задал пользователь, или сначала приводите ввод пользователя к синтаксису TFS
Поиск должен быть в меру интеллектуальным, то есть искать не точно то, что задал пользователь, а исключая стоп-слова искать по префиксам оставшихся слов независимо от их порядка в строке.
17 окт 11, 18:11    [11454111]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
iljy
grigrim,

ну так и исключайте его, только до того, как превратите в шаблон.

То есть только так, как я написал в запросе выше? Более человечного способа не существует?
17 окт 11, 18:12    [11454118]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
iljy
Member

Откуда:
Сообщений: 8711
grigrim,

руководствуясь какими соображениями сервер должен решить, что заданный вами поиск слов, начинающихся на "и", на самом деле является шумовым словом?
17 окт 11, 18:16    [11454144]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

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

Ну так реализуйте такой поиск
17 окт 11, 18:16    [11454145]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
iljy
grigrim,

руководствуясь какими соображениями сервер должен решить, что заданный вами поиск слов, начинающихся на "и", на самом деле является шумовым словом?
Возможно, теми же самыми, что и при анализе строки поиска "ввв и ггг", без префиксов. Об этом и спрашиваю.
17 окт 11, 18:20    [11454178]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Возможно, теми же самыми, что и при анализе строки поиска "ввв и ггг", без префиксов. Об этом и спрашиваю.

Ага, пишем Манчестер, а читаем Ливерпуль
17 окт 11, 18:21    [11454200]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
iljy
Member

Откуда:
Сообщений: 8711
grigrim,

вы понимаете разницу между поиском слова из одной буквы "и" и всех слов, начинающихся на "и"? С какого перепугу сервер должнен отбрасывать тысячи слов как шумовые?
17 окт 11, 18:22    [11454212]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
grigrim
Member

Откуда: Москва
Сообщений: 89
iljy
grigrim,

вы понимаете разницу между поиском слова из одной буквы "и" и всех слов, начинающихся на "и"? С какого перепугу сервер должнен отбрасывать тысячи слов как шумовые?
Вы, видимо, не понимаете, что я вам пытаюсь донести.
17 окт 11, 18:26    [11454246]     Ответить | Цитировать Сообщить модератору
 Re: неправильно работает полнотекстовый поиск  [new]
Glory
Member

Откуда:
Сообщений: 104751
grigrim
Вы, видимо, не понимаете, что я вам пытаюсь донести.

А вы сами понимаете ?
Тема началась вообще с заявления о неправильной работе fts
17 окт 11, 18:28    [11454266]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить