Страница 1 из 2

Проблемы с поиском в списке SQL

Добавлено: Ср авг 22, 2012 08:25
iboxjo
Добрый день
На одном из компьютеров наблюдается забавная проблема с поиском по списку деклараций (и кажется что проблема эта исключительно в SQL). Ситуация такова, что по некоторым словам поиск работает, а по некоторым нет. Причём как по самому слову, так и при использовании экранирующих символов (", '), знаков подстановок (*,?). Заведомо известно, что деклация в списке есть, все ограничения поиска сняты. Представляя, что поисковый запрос (SELECT SQL) равнозначен для различных слов, я не могу понять, что приводит к подобной ситуации. Конечно при условии, что поиск производится посредством SQL запроса. Соответствующий поиск в файловом режиме работает нормально.
Понятно, что вопрос не критический, но ситуация сильно раздражает декларанта :)

Re: Проблемы с поиском в списке SQL

Добавлено: Ср авг 22, 2012 10:38
tamkon
iboxjo писал(а):Добрый день
На одном из компьютеров наблюдается забавная проблема с поиском по списку деклараций (и кажется что проблема эта исключительно в SQL). Ситуация такова, что по некоторым словам поиск работает, а по некоторым нет. Причём как по самому слову, так и при использовании экранирующих символов (", '), знаков подстановок (*,?). Заведомо известно, что деклация в списке есть, все ограничения поиска сняты. Представляя, что поисковый запрос (SELECT SQL) равнозначен для различных слов, я не могу понять, что приводит к подобной ситуации. Конечно при условии, что поиск производится посредством SQL запроса. Соответствующий поиск в файловом режиме работает нормально.
Понятно, что вопрос не критический, но ситуация сильно раздражает декларанта :)
В оболочке управления SQL сервером (Среда SQL Server Management Studio Express ) надо последовательно выполнить 2 запроса: ConvertFtcLng.sql и fulltext.sql (оба они есть в папке alta\utils ), применительно к Вашей (по умолчанию gtd) базе (в среде SQL надо ее явно выбрать). На результат выполнения запросов можно не смотреть...

Смысл - восстановления индекса поиска, который (вернее, косяк это индекса) и мешает поиску.

Проверено в 100% случаев...

Re: Проблемы с поиском в списке SQL

Добавлено: Чт авг 23, 2012 05:07
Iskin
ConvertFtcLng.sql и fulltext.sql - т.е. файлы индексации, которые надо периодически нажимать? Возможно еще есть какие кнопки сервиса базы? И еще, можно задать функционал сервиса с определенной частотой (извиняюсь, Альта не рядом), что бы само... в планировщике?

Re: Проблемы с поиском в списке SQL

Добавлено: Чт авг 23, 2012 06:21
tamkon
Iskin писал(а):ConvertFtcLng.sql и fulltext.sql - т.е. файлы индексации, которые надо периодически нажимать? Возможно еще есть какие кнопки сервиса базы? И еще, можно задать функционал сервиса с определенной частотой (извиняюсь, Альта не рядом), что бы само... в планировщике?

Не, не периодично, а только тогда, когда возникают проблемы с поиском (вернее, ситуации, когда поиска нет). В большинстве поиск работает и без этих телодвижений,
но иногда и у некоторых сбивается.

P.S.
И ConvertFtcLng.sql и fulltext.sql - это не файлы индексации, а запросы к SQL-базе, которые исправляют полнотекстовый индекс базы.

Re: Проблемы с поиском в списке SQL

Добавлено: Чт авг 23, 2012 07:50
iboxjo
Извините за задержку. Спасибо за ответ. Я конечно попробую выполнить ваши рекомендации, но хочу отметить, что остальные 15 декларантов на данной базе подобных проблем не испытывают. Возможно ли что это проблемы локальной усановки ГТД?

Re: Проблемы с поиском в списке SQL

Добавлено: Чт авг 23, 2012 09:34
Ranger_Z
Если остальные не испытавают, значит дело не в индексах.

Re: Проблемы с поиском в списке SQL

Добавлено: Чт авг 23, 2012 10:11
tamkon
Ranger_Z писал(а):Если остальные не испытавают, значит дело не в индексах.
Тогда да, точно не в индексах, скорее всего, набирают не правильно, или поиск не по всем папкам задают (там много вариантов).

Re: Проблемы с поиском в списке SQL

Добавлено: Пт авг 31, 2012 14:01
Nick
Поисковый запрос типа "СЛОВО1, СЛОВО2" выполняется на SQL-сервере как
SELECT GID FROM DOCS WHERE CONTAINS(Blob,' "СЛОВО1*" OR "СЛОВО2*" ')
Любые знаки препинания (кавычки, запятые и т.д.) игнорируются.

Еще вопрос - правда ли что одно и то же слово на одном клиенте ищется, а на другом - нет? Тогда дело не в индексе, будем изучать вопрос дальше.

Re: Проблемы с поиском в списке SQL

Добавлено: Пт мар 14, 2014 13:28
Tipoza
Ситуация, не работает поиск по базе (MS SQL 2008 R2 Express). С какого момента не понятно, давно не пользовались.
После запуска поиска выскакивает ошибка:
Изображение
Посмотрел запущенные службы, работает fdlauncher.exe, fdhost нет. Нашел fdhost.exe в папке MSSQL попытался запустить в ручную, безрезультатно.
Так же пытался выполнить два выше упомянутых скрипта:
ConvertFtcLng.sql - выдает ошибку:
Сообщение 9966, уровень 16, состояние 1, процедура sp_fulltext_table, строка 18
Невозможно использовать полнотекстовый поиск в базах данных master, tempdb или model.
Сообщение 9966, уровень 16, состояние 1, процедура sp_fulltext_catalog, строка 26
Невозможно использовать полнотекстовый поиск в базах данных master, tempdb или model.

fulltext.sql - выдает ошибку:
Сообщение 4902, уровень 16, состояние 1, строка 2
Не удалось найти объект "Docs", так как он не существует, или отсутствуют разрешения.

Кто знает где смотреть, подскажите пожалуйста, что могло сломаться!?

Re: Проблемы с поиском в списке SQL

Добавлено: Пт мар 14, 2014 13:50
aiki
Tipoza писал(а):Ситуация, не работает поиск по базе (MS SQL 2008 R2 Express). С какого момента не понятно, давно не пользовались.
После запуска поиска выскакивает ошибка:
Изображение
Посмотрел запущенные службы, работает fdlauncher.exe, fdhost нет. Нашел fdhost.exe в папке MSSQL попытался запустить в ручную, безрезультатно.
Так же пытался выполнить два выше упомянутых скрипта:
ConvertFtcLng.sql - выдает ошибку:
Сообщение 9966, уровень 16, состояние 1, процедура sp_fulltext_table, строка 18
Невозможно использовать полнотекстовый поиск в базах данных master, tempdb или model.
Сообщение 9966, уровень 16, состояние 1, процедура sp_fulltext_catalog, строка 26
Невозможно использовать полнотекстовый поиск в базах данных master, tempdb или model.

fulltext.sql - выдает ошибку:
Сообщение 4902, уровень 16, состояние 1, строка 2
Не удалось найти объект "Docs", так как он не существует, или отсутствуют разрешения.

Кто знает где смотреть, подскажите пожалуйста, что могло сломаться!?
в панеле управления службами SQL (все программы, microsoft SQL, средства настройки, диспетчер конфигурации) проверьте статусы служб SQL server и Full text, выполните их перезапуск.
скрипты вы применяли скорее всего на базу master не сменив на рабочую, поэтому ошибка.

Re: Проблемы с поиском в списке SQL

Добавлено: Пн мар 17, 2014 08:31
gorkin
Проверьте под кем запускается служба SQL Full-text indexing и попробуйте её запустить вручную в Администрировании\Службы. Если не запускается - смените способ входа в систему, поверьте что служба запускается, потом выполните скрипт, который написан в ошибке.

Re: Проблемы с поиском в списке SQL

Добавлено: Пн мар 17, 2014 17:36
Tipoza
Спасибо всем за ответы, ситуация не много изменилась, но поиск так и не за работал.
В диспетчере конфигурации все необходимы службы запущены. Сменил у службы Full-text способ входа с локальной службы на локальную систему.
Прогнал скрипты (изначально не выбирал нужную базу):
ConvertFtcLng.sql - выполняется без ошибок.
fulltext.sql - выдает ошибку:
Сообщение 7652, уровень 16, состояние 1, строка 1
Полнотекстовый индекс для таблицы или индексированного представления "dbo.Docs" уже создан.


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

Re: Проблемы с поиском в списке SQL

Добавлено: Вт мар 18, 2014 14:50
popov
Во-первых, два скрипта выполнять последовательно никогда не надо - это изначально неправильно было подсказано!

Чтобы пересоздать полнотекстовый индекс в существующей базе достаточно выполнить ConvertFtcLng.sql (я его изначально делал для замены языка в полнотекстовом индексе, поэтому так называется, в принципе есть еще его аналог под более уместным именем REBUILDFULLTEXT.SQL). Но при этом надо внимательно выбрать базу в откидушке на панели инструментов Студии (по умолчанию там стоит "master"), иначе будут ошибки как в посте от 14 мар 2014 14:28.

Второй (fulltext.sql) используется самой программой при первоначальной инициализации пустой базы и вручную его имеет смысл выполнять только в каких-то специфических ситуациях, аналогичных ситуации "с нуля" (например, если удалили полнотекстовый индекс вручную).

По поводу пустых результатов поиска. Какое-то время после выполнения скрипта ConvertFtcLng.sql ожидать результатов не следует, т.к. там запускается полная переиндексация всех документов в базе. Соотв-но время этой переиндексации сильно зависит от размера БД (кол-ва документов в ней).
Кроме того, SQL-ный полнотекстовый поиск довольно капризный оказался, особенно если кроме букв (т.е. настоящих слов) ищутся всевозможные сочетания букв с цифрами, а еще хуже - с разделителями типа слешей, тире, точек и т.п. Так что надо смотреть что именно Вы ищите и находится ли вообще хоть что-то.

Если самостоятельно справится не удается - звоните в нашу техподдержку, посмотрим по удаленке...

Re: Проблемы с поиском в списке SQL

Добавлено: Вт мар 25, 2014 12:08
Tipoza
Большое спасибо, все заработало, не обратил внимание после всех манипуляций, что часть слова или номера ищется со знаком "%". Так что теперь все ок.

Re: Проблемы с поиском в списке SQL

Добавлено: Вт мар 25, 2014 12:39
Nick
А вот поиском части слова со значком % лучше не злоупотреблять! Он не использует индекс, а делается полным перебором по всем файлам. Это и по времени долго, и сильно тормозит работу остальных декларантов в общей базе.

Если речь идет про номер ГТД - для поиска по части номера в диалоге есть специальное поле.
А вы что ищете? Какой-нибудь документ гр.44 ?

Re: Проблемы с поиском в списке SQL

Добавлено: Вт мар 25, 2014 14:13
popov
Да, поиском с % злоупотреблять не стоит - это тормоз для базы в целом.

В принципе "обычный" поиск (по полнотекстовому индексу) тоже находит частично указанные слова, но только если эта часть находится в начале слова! Т.е. если в документе указано "слово", то поиск по "сл", "сло" и т.д. нормально отработает, а вот по "ово" и пр. вариантам не с начала слова не даст ничего. Их можно найти только с помощью "%ово%", т.е. полным перебором.

Справедливости ради замечу, что сам механизм разбиения на слова (определения где слово началось, где закончилось) и соотв-но наполнение индекса "словами" в сикульной индексилке иногда весьма своеобразно работает и плюс на разных версиях SQL-сервера по-разному. Поэтому можно что-то и не найти при "обычном" поиске, особенно когда ищется смесь с цифрами и символами, как я уже упоминал. В этих случаях тоже можно пробовать перебор, но главное не увлекаться им ;)

Re: Проблемы с поиском в списке SQL

Добавлено: Пн апр 07, 2014 13:46
sergm
доброго времени суток! тоже возникла проблема с поиском Альта ГТД-про при попытке поиска выдает ошибку:"выполнение полнотекстового запроса завершилось неудачей. "интерфейс не поддерживается", куда копать? кто подскажет?
MainSQL=Microsoft SQL Server 2005 Express Edition with Advanced Services - 9.00.3042.00 (SP2)

Re: Проблемы с поиском в списке SQL

Добавлено: Пн апр 07, 2014 14:13
Nick
Копать как обычно в Google :)
Английское название данной ошибки: Full-text operation failed 'No such interface supported'
По первым ссылкам похоже что встречается исключительно на MS SQL 2005 SP2.
Советуют обновиться до SP3. Если не поможет - снести, поставить заново и перезапустить Full Text Search Engine.
В любом случае проблема не в Альте, а в SQL-сервере.

Re: Проблемы с поиском в списке SQL

Добавлено: Пн апр 07, 2014 14:20
sergm
Nick писал(а):Копать как обычно в Google :)
Английское название данной ошибки: Full-text operation failed 'No such interface supported'
По первым ссылкам похоже что встречается исключительно на MS SQL 2005 SP2.
Советуют обновиться до SP3. Если не поможет - снести, поставить заново и перезапустить Full Text Search Engine.
В любом случае проблема не в Альте, а в SQL-сервере.
спс, а если обновлятся база ГТД слетит, раньше все работало....не заметил после чего слетело (((

.....даже резервные копии делать не хочет (...грустно

Re: Проблемы с поиском в списке SQL

Добавлено: Пн апр 07, 2014 15:49
Ranger_Z
1. На всякий случай можно сделать бекап файлов баз данных.
2. При переустановке сервера базы убиваться не должны(по идее)
3. Можно попытаться сделать бекап базы другим клиентом SQL Managment Studio.