-
-
Обсуждения на сайте Альта-Софт
-
Проблемы с поиском в списке SQL
Модераторы: Renat, Gala, alta_olg, expert, Lemur
Проблемы с поиском в списке SQL
Добрый день
На одном из компьютеров наблюдается забавная проблема с поиском по списку деклараций (и кажется что проблема эта исключительно в SQL). Ситуация такова, что по некоторым словам поиск работает, а по некоторым нет. Причём как по самому слову, так и при использовании экранирующих символов (", '), знаков подстановок (*,?). Заведомо известно, что деклация в списке есть, все ограничения поиска сняты. Представляя, что поисковый запрос (SELECT SQL) равнозначен для различных слов, я не могу понять, что приводит к подобной ситуации. Конечно при условии, что поиск производится посредством SQL запроса. Соответствующий поиск в файловом режиме работает нормально.
Понятно, что вопрос не критический, но ситуация сильно раздражает декларанта
На одном из компьютеров наблюдается забавная проблема с поиском по списку деклараций (и кажется что проблема эта исключительно в SQL). Ситуация такова, что по некоторым словам поиск работает, а по некоторым нет. Причём как по самому слову, так и при использовании экранирующих символов (", '), знаков подстановок (*,?). Заведомо известно, что деклация в списке есть, все ограничения поиска сняты. Представляя, что поисковый запрос (SELECT SQL) равнозначен для различных слов, я не могу понять, что приводит к подобной ситуации. Конечно при условии, что поиск производится посредством SQL запроса. Соответствующий поиск в файловом режиме работает нормально.
Понятно, что вопрос не критический, но ситуация сильно раздражает декларанта
-
- Дед
- Сообщения: 451
- На форуме: c 14 ноя 2004
- Откуда: Новосибирск
Сказал: 23 ед.
Получил: 40 ед.
Получил: 40 ед.
Re: Проблемы с поиском в списке SQL
В оболочке управления SQL сервером (Среда SQL Server Management Studio Express ) надо последовательно выполнить 2 запроса: ConvertFtcLng.sql и fulltext.sql (оба они есть в папке alta\utils ), применительно к Вашей (по умолчанию gtd) базе (в среде SQL надо ее явно выбрать). На результат выполнения запросов можно не смотреть...iboxjo писал(а):Добрый день
На одном из компьютеров наблюдается забавная проблема с поиском по списку деклараций (и кажется что проблема эта исключительно в SQL). Ситуация такова, что по некоторым словам поиск работает, а по некоторым нет. Причём как по самому слову, так и при использовании экранирующих символов (", '), знаков подстановок (*,?). Заведомо известно, что деклация в списке есть, все ограничения поиска сняты. Представляя, что поисковый запрос (SELECT SQL) равнозначен для различных слов, я не могу понять, что приводит к подобной ситуации. Конечно при условии, что поиск производится посредством SQL запроса. Соответствующий поиск в файловом режиме работает нормально.
Понятно, что вопрос не критический, но ситуация сильно раздражает декларанта
Смысл - восстановления индекса поиска, который (вернее, косяк это индекса) и мешает поиску.
Проверено в 100% случаев...
- Iskin
- Эксперт
- Сообщения: 9773
- На форуме: c 08 июл 2008
- Откуда: АО "КАМА"
Сказал: 133 ед.
Получил: 2443 ед.
Получил: 2443 ед.
Re: Проблемы с поиском в списке SQL
ConvertFtcLng.sql и fulltext.sql - т.е. файлы индексации, которые надо периодически нажимать? Возможно еще есть какие кнопки сервиса базы? И еще, можно задать функционал сервиса с определенной частотой (извиняюсь, Альта не рядом), что бы само... в планировщике?
Думайте глобально, действуйте локально!
-
- Дед
- Сообщения: 451
- На форуме: c 14 ноя 2004
- Откуда: Новосибирск
Сказал: 23 ед.
Получил: 40 ед.
Получил: 40 ед.
Re: Проблемы с поиском в списке SQL
Iskin писал(а):ConvertFtcLng.sql и fulltext.sql - т.е. файлы индексации, которые надо периодически нажимать? Возможно еще есть какие кнопки сервиса базы? И еще, можно задать функционал сервиса с определенной частотой (извиняюсь, Альта не рядом), что бы само... в планировщике?
Не, не периодично, а только тогда, когда возникают проблемы с поиском (вернее, ситуации, когда поиска нет). В большинстве поиск работает и без этих телодвижений,
но иногда и у некоторых сбивается.
P.S.
И ConvertFtcLng.sql и fulltext.sql - это не файлы индексации, а запросы к SQL-базе, которые исправляют полнотекстовый индекс базы.
Re: Проблемы с поиском в списке SQL
Извините за задержку. Спасибо за ответ. Я конечно попробую выполнить ваши рекомендации, но хочу отметить, что остальные 15 декларантов на данной базе подобных проблем не испытывают. Возможно ли что это проблемы локальной усановки ГТД?
- Ranger_Z
- Эксперт
- Сообщения: 1072
- На форуме: c 28 ноя 2007
- Откуда: МКС
Сказал: 5 ед.
Получил: 125 ед.
Получил: 125 ед.
Re: Проблемы с поиском в списке SQL
Если остальные не испытавают, значит дело не в индексах.
-
- Дед
- Сообщения: 451
- На форуме: c 14 ноя 2004
- Откуда: Новосибирск
Сказал: 23 ед.
Получил: 40 ед.
Получил: 40 ед.
Re: Проблемы с поиском в списке SQL
Тогда да, точно не в индексах, скорее всего, набирают не правильно, или поиск не по всем папкам задают (там много вариантов).Ranger_Z писал(а):Если остальные не испытавают, значит дело не в индексах.
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Проблемы с поиском в списке SQL
Поисковый запрос типа "СЛОВО1, СЛОВО2" выполняется на SQL-сервере как
SELECT GID FROM DOCS WHERE CONTAINS(Blob,' "СЛОВО1*" OR "СЛОВО2*" ')
Любые знаки препинания (кавычки, запятые и т.д.) игнорируются.
Еще вопрос - правда ли что одно и то же слово на одном клиенте ищется, а на другом - нет? Тогда дело не в индексе, будем изучать вопрос дальше.
SELECT GID FROM DOCS WHERE CONTAINS(Blob,' "СЛОВО1*" OR "СЛОВО2*" ')
Любые знаки препинания (кавычки, запятые и т.д.) игнорируются.
Еще вопрос - правда ли что одно и то же слово на одном клиенте ищется, а на другом - нет? Тогда дело не в индексе, будем изучать вопрос дальше.
Re: Проблемы с поиском в списке SQL
Ситуация, не работает поиск по базе (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", так как он не существует, или отсутствуют разрешения.
Кто знает где смотреть, подскажите пожалуйста, что могло сломаться!?
После запуска поиска выскакивает ошибка:
Посмотрел запущенные службы, работает 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 ед.
Получил: 74 ед.
Re: Проблемы с поиском в списке SQL
в панеле управления службами SQL (все программы, microsoft SQL, средства настройки, диспетчер конфигурации) проверьте статусы служб SQL server и Full text, выполните их перезапуск.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", так как он не существует, или отсутствуют разрешения.
Кто знает где смотреть, подскажите пожалуйста, что могло сломаться!?
скрипты вы применяли скорее всего на базу master не сменив на рабочую, поэтому ошибка.
Следующие пользователи поблагодарили aiki за это собщение: Tipoza
Re: Проблемы с поиском в списке SQL
Проверьте под кем запускается служба SQL Full-text indexing и попробуйте её запустить вручную в Администрировании\Службы. Если не запускается - смените способ входа в систему, поверьте что служба запускается, потом выполните скрипт, который написан в ошибке.
Следующие пользователи поблагодарили gorkin за это собщение: Tipoza
Re: Проблемы с поиском в списке SQL
Спасибо всем за ответы, ситуация не много изменилась, но поиск так и не за работал.
В диспетчере конфигурации все необходимы службы запущены. Сменил у службы Full-text способ входа с локальной службы на локальную систему.
Прогнал скрипты (изначально не выбирал нужную базу):
ConvertFtcLng.sql - выполняется без ошибок.
fulltext.sql - выдает ошибку:
Сообщение 7652, уровень 16, состояние 1, строка 1
Полнотекстовый индекс для таблицы или индексированного представления "dbo.Docs" уже создан.
Альта при завершении поиска не выдает ошибок, а просто не чего не находит и заканчивается пустым списком.
В диспетчере конфигурации все необходимы службы запущены. Сменил у службы Full-text способ входа с локальной службы на локальную систему.
Прогнал скрипты (изначально не выбирал нужную базу):
ConvertFtcLng.sql - выполняется без ошибок.
fulltext.sql - выдает ошибку:
Сообщение 7652, уровень 16, состояние 1, строка 1
Полнотекстовый индекс для таблицы или индексированного представления "dbo.Docs" уже создан.
Альта при завершении поиска не выдает ошибок, а просто не чего не находит и заканчивается пустым списком.
-
- Почетный участник
- Сообщения: 101
- На форуме: c 06 ноя 2004
- Откуда: Альта-Софт
Сказал: 0 ед.
Получил: 20 ед.
Получил: 20 ед.
Re: Проблемы с поиском в списке SQL
Во-первых, два скрипта выполнять последовательно никогда не надо - это изначально неправильно было подсказано!
Чтобы пересоздать полнотекстовый индекс в существующей базе достаточно выполнить ConvertFtcLng.sql (я его изначально делал для замены языка в полнотекстовом индексе, поэтому так называется, в принципе есть еще его аналог под более уместным именем REBUILDFULLTEXT.SQL). Но при этом надо внимательно выбрать базу в откидушке на панели инструментов Студии (по умолчанию там стоит "master"), иначе будут ошибки как в посте от 14 мар 2014 14:28.
Второй (fulltext.sql) используется самой программой при первоначальной инициализации пустой базы и вручную его имеет смысл выполнять только в каких-то специфических ситуациях, аналогичных ситуации "с нуля" (например, если удалили полнотекстовый индекс вручную).
По поводу пустых результатов поиска. Какое-то время после выполнения скрипта ConvertFtcLng.sql ожидать результатов не следует, т.к. там запускается полная переиндексация всех документов в базе. Соотв-но время этой переиндексации сильно зависит от размера БД (кол-ва документов в ней).
Кроме того, SQL-ный полнотекстовый поиск довольно капризный оказался, особенно если кроме букв (т.е. настоящих слов) ищутся всевозможные сочетания букв с цифрами, а еще хуже - с разделителями типа слешей, тире, точек и т.п. Так что надо смотреть что именно Вы ищите и находится ли вообще хоть что-то.
Если самостоятельно справится не удается - звоните в нашу техподдержку, посмотрим по удаленке...
Чтобы пересоздать полнотекстовый индекс в существующей базе достаточно выполнить ConvertFtcLng.sql (я его изначально делал для замены языка в полнотекстовом индексе, поэтому так называется, в принципе есть еще его аналог под более уместным именем REBUILDFULLTEXT.SQL). Но при этом надо внимательно выбрать базу в откидушке на панели инструментов Студии (по умолчанию там стоит "master"), иначе будут ошибки как в посте от 14 мар 2014 14:28.
Второй (fulltext.sql) используется самой программой при первоначальной инициализации пустой базы и вручную его имеет смысл выполнять только в каких-то специфических ситуациях, аналогичных ситуации "с нуля" (например, если удалили полнотекстовый индекс вручную).
По поводу пустых результатов поиска. Какое-то время после выполнения скрипта ConvertFtcLng.sql ожидать результатов не следует, т.к. там запускается полная переиндексация всех документов в базе. Соотв-но время этой переиндексации сильно зависит от размера БД (кол-ва документов в ней).
Кроме того, SQL-ный полнотекстовый поиск довольно капризный оказался, особенно если кроме букв (т.е. настоящих слов) ищутся всевозможные сочетания букв с цифрами, а еще хуже - с разделителями типа слешей, тире, точек и т.п. Так что надо смотреть что именно Вы ищите и находится ли вообще хоть что-то.
Если самостоятельно справится не удается - звоните в нашу техподдержку, посмотрим по удаленке...
С уважением, Дмитрий.
Следующие пользователи поблагодарили popov за это собщение: tamkon
Re: Проблемы с поиском в списке SQL
Большое спасибо, все заработало, не обратил внимание после всех манипуляций, что часть слова или номера ищется со знаком "%". Так что теперь все ок.
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Проблемы с поиском в списке SQL
А вот поиском части слова со значком % лучше не злоупотреблять! Он не использует индекс, а делается полным перебором по всем файлам. Это и по времени долго, и сильно тормозит работу остальных декларантов в общей базе.
Если речь идет про номер ГТД - для поиска по части номера в диалоге есть специальное поле.
А вы что ищете? Какой-нибудь документ гр.44 ?
Если речь идет про номер ГТД - для поиска по части номера в диалоге есть специальное поле.
А вы что ищете? Какой-нибудь документ гр.44 ?
-
- Почетный участник
- Сообщения: 101
- На форуме: c 06 ноя 2004
- Откуда: Альта-Софт
Сказал: 0 ед.
Получил: 20 ед.
Получил: 20 ед.
Re: Проблемы с поиском в списке SQL
Да, поиском с % злоупотреблять не стоит - это тормоз для базы в целом.
В принципе "обычный" поиск (по полнотекстовому индексу) тоже находит частично указанные слова, но только если эта часть находится в начале слова! Т.е. если в документе указано "слово", то поиск по "сл", "сло" и т.д. нормально отработает, а вот по "ово" и пр. вариантам не с начала слова не даст ничего. Их можно найти только с помощью "%ово%", т.е. полным перебором.
Справедливости ради замечу, что сам механизм разбиения на слова (определения где слово началось, где закончилось) и соотв-но наполнение индекса "словами" в сикульной индексилке иногда весьма своеобразно работает и плюс на разных версиях SQL-сервера по-разному. Поэтому можно что-то и не найти при "обычном" поиске, особенно когда ищется смесь с цифрами и символами, как я уже упоминал. В этих случаях тоже можно пробовать перебор, но главное не увлекаться им
В принципе "обычный" поиск (по полнотекстовому индексу) тоже находит частично указанные слова, но только если эта часть находится в начале слова! Т.е. если в документе указано "слово", то поиск по "сл", "сло" и т.д. нормально отработает, а вот по "ово" и пр. вариантам не с начала слова не даст ничего. Их можно найти только с помощью "%ово%", т.е. полным перебором.
Справедливости ради замечу, что сам механизм разбиения на слова (определения где слово началось, где закончилось) и соотв-но наполнение индекса "словами" в сикульной индексилке иногда весьма своеобразно работает и плюс на разных версиях SQL-сервера по-разному. Поэтому можно что-то и не найти при "обычном" поиске, особенно когда ищется смесь с цифрами и символами, как я уже упоминал. В этих случаях тоже можно пробовать перебор, но главное не увлекаться им
С уважением, Дмитрий.
Re: Проблемы с поиском в списке SQL
доброго времени суток! тоже возникла проблема с поиском Альта ГТД-про при попытке поиска выдает ошибку:"выполнение полнотекстового запроса завершилось неудачей. "интерфейс не поддерживается", куда копать? кто подскажет?
MainSQL=Microsoft SQL Server 2005 Express Edition with Advanced Services - 9.00.3042.00 (SP2)
MainSQL=Microsoft SQL Server 2005 Express Edition with Advanced Services - 9.00.3042.00 (SP2)
- Nick
- Аксакал
- Сообщения: 734
- На форуме: c 02 фев 2005
- Откуда: Альта-Софт, Программист
Сказал: 13 ед.
Получил: 124 ед.
Получил: 124 ед.
Re: Проблемы с поиском в списке SQL
Копать как обычно в Google
Английское название данной ошибки: Full-text operation failed 'No such interface supported'
По первым ссылкам похоже что встречается исключительно на MS SQL 2005 SP2.
Советуют обновиться до SP3. Если не поможет - снести, поставить заново и перезапустить Full Text Search Engine.
В любом случае проблема не в Альте, а в SQL-сервере.
Английское название данной ошибки: Full-text operation failed 'No such interface supported'
По первым ссылкам похоже что встречается исключительно на MS SQL 2005 SP2.
Советуют обновиться до SP3. Если не поможет - снести, поставить заново и перезапустить Full Text Search Engine.
В любом случае проблема не в Альте, а в SQL-сервере.
Re: Проблемы с поиском в списке SQL
спс, а если обновлятся база ГТД слетит, раньше все работало....не заметил после чего слетело (((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 ед.
Получил: 125 ед.
Re: Проблемы с поиском в списке SQL
1. На всякий случай можно сделать бекап файлов баз данных.
2. При переустановке сервера базы убиваться не должны(по идее)
3. Можно попытаться сделать бекап базы другим клиентом SQL Managment Studio.
2. При переустановке сервера базы убиваться не должны(по идее)
3. Можно попытаться сделать бекап базы другим клиентом SQL Managment Studio.
Последний раз редактировалось Ranger_Z Пн апр 07, 2014 15:53, всего редактировалось 1 раз.