• Обсуждения на сайте Альта-Софт

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

вопросы по работе с программным обеспечением

Модераторы: Renat, Gala, alta_olg, expert, Lemur

iboxjo
Почетный участник
Сообщения: 105
На форуме: c 06 июн 2008
Сказал: 7 ед.
Получил: 2 ед.

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

Сообщение iboxjo »

Добрый день
На одном из компьютеров наблюдается забавная проблема с поиском по списку деклараций (и кажется что проблема эта исключительно в SQL). Ситуация такова, что по некоторым словам поиск работает, а по некоторым нет. Причём как по самому слову, так и при использовании экранирующих символов (", '), знаков подстановок (*,?). Заведомо известно, что деклация в списке есть, все ограничения поиска сняты. Представляя, что поисковый запрос (SELECT SQL) равнозначен для различных слов, я не могу понять, что приводит к подобной ситуации. Конечно при условии, что поиск производится посредством SQL запроса. Соответствующий поиск в файловом режиме работает нормально.
Понятно, что вопрос не критический, но ситуация сильно раздражает декларанта :)
tamkon
Дед
Сообщения: 451
На форуме: c 14 ноя 2004
Откуда: Новосибирск
Сказал: 23 ед.
Получил: 40 ед.

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

Сообщение tamkon »

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

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

Проверено в 100% случаев...
Аватара пользователя
Iskin
Эксперт
Сообщения: 9483
На форуме: c 08 июл 2008
Откуда: Татарстан
Сказал: 129 ед.
Получил: 2372 ед.

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

Сообщение Iskin »

ConvertFtcLng.sql и fulltext.sql - т.е. файлы индексации, которые надо периодически нажимать? Возможно еще есть какие кнопки сервиса базы? И еще, можно задать функционал сервиса с определенной частотой (извиняюсь, Альта не рядом), что бы само... в планировщике?
Думайте глобально, действуйте локально!
tamkon
Дед
Сообщения: 451
На форуме: c 14 ноя 2004
Откуда: Новосибирск
Сказал: 23 ед.
Получил: 40 ед.

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

Сообщение tamkon »

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

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

P.S.
И ConvertFtcLng.sql и fulltext.sql - это не файлы индексации, а запросы к SQL-базе, которые исправляют полнотекстовый индекс базы.
iboxjo
Почетный участник
Сообщения: 105
На форуме: c 06 июн 2008
Сказал: 7 ед.
Получил: 2 ед.

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

Сообщение iboxjo »

Извините за задержку. Спасибо за ответ. Я конечно попробую выполнить ваши рекомендации, но хочу отметить, что остальные 15 декларантов на данной базе подобных проблем не испытывают. Возможно ли что это проблемы локальной усановки ГТД?
Аватара пользователя
Ranger_Z
Эксперт
Сообщения: 1072
На форуме: c 28 ноя 2007
Откуда: МКС
Сказал: 5 ед.
Получил: 125 ед.

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

Сообщение Ranger_Z »

Если остальные не испытавают, значит дело не в индексах.
tamkon
Дед
Сообщения: 451
На форуме: c 14 ноя 2004
Откуда: Новосибирск
Сказал: 23 ед.
Получил: 40 ед.

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

Сообщение tamkon »

Ranger_Z писал(а):Если остальные не испытавают, значит дело не в индексах.
Тогда да, точно не в индексах, скорее всего, набирают не правильно, или поиск не по всем папкам задают (там много вариантов).
Аватара пользователя
Nick
Аксакал
Сообщения: 734
На форуме: c 02 фев 2005
Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.

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

Сообщение Nick »

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

Еще вопрос - правда ли что одно и то же слово на одном клиенте ищется, а на другом - нет? Тогда дело не в индексе, будем изучать вопрос дальше.
Tipoza
Активный участник
Сообщения: 76
На форуме: c 16 сен 2008
Сказал: 49 ед.
Получил: 1 ед.

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

Сообщение 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", так как он не существует, или отсутствуют разрешения.

Кто знает где смотреть, подскажите пожалуйста, что могло сломаться!?
Аватара пользователя
aiki
Дед
Сообщения: 302
На форуме: c 14 апр 2010
Откуда: СП "Интегра", Ижевск
Сказал: 7 ед.
Получил: 74 ед.

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

Сообщение 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 не сменив на рабочую, поэтому ошибка.
Следующие пользователи поблагодарили aiki за это собщение: Tipoza
gorkin
Почетный участник
Сообщения: 191
На форуме: c 25 мар 2013
Сказал: 0 ед.
Получил: 51 ед.

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

Сообщение gorkin »

Проверьте под кем запускается служба SQL Full-text indexing и попробуйте её запустить вручную в Администрировании\Службы. Если не запускается - смените способ входа в систему, поверьте что служба запускается, потом выполните скрипт, который написан в ошибке.
Следующие пользователи поблагодарили gorkin за это собщение: Tipoza
Tipoza
Активный участник
Сообщения: 76
На форуме: c 16 сен 2008
Сказал: 49 ед.
Получил: 1 ед.

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

Сообщение Tipoza »

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


Альта при завершении поиска не выдает ошибок, а просто не чего не находит и заканчивается пустым списком.
popov
Почетный участник
Сообщения: 101
На форуме: c 06 ноя 2004
Откуда: Альта-Софт
Сказал: 0 ед.
Получил: 20 ед.

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

Сообщение popov »

Во-первых, два скрипта выполнять последовательно никогда не надо - это изначально неправильно было подсказано!

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

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

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

Если самостоятельно справится не удается - звоните в нашу техподдержку, посмотрим по удаленке...
С уважением, Дмитрий.
Следующие пользователи поблагодарили popov за это собщение: tamkon
Tipoza
Активный участник
Сообщения: 76
На форуме: c 16 сен 2008
Сказал: 49 ед.
Получил: 1 ед.

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

Сообщение Tipoza »

Большое спасибо, все заработало, не обратил внимание после всех манипуляций, что часть слова или номера ищется со знаком "%". Так что теперь все ок.
Аватара пользователя
Nick
Аксакал
Сообщения: 734
На форуме: c 02 фев 2005
Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.

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

Сообщение Nick »

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

Если речь идет про номер ГТД - для поиска по части номера в диалоге есть специальное поле.
А вы что ищете? Какой-нибудь документ гр.44 ?
popov
Почетный участник
Сообщения: 101
На форуме: c 06 ноя 2004
Откуда: Альта-Софт
Сказал: 0 ед.
Получил: 20 ед.

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

Сообщение popov »

Да, поиском с % злоупотреблять не стоит - это тормоз для базы в целом.

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

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

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

Сообщение sergm »

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

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

Сообщение Nick »

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

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

Сообщение sergm »

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

.....даже резервные копии делать не хочет (...грустно
Аватара пользователя
Ranger_Z
Эксперт
Сообщения: 1072
На форуме: c 28 ноя 2007
Откуда: МКС
Сказал: 5 ед.
Получил: 125 ед.

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

Сообщение Ranger_Z »

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