Глобальный поиск. Ошибка при запуске переиндексации сайта.
Доброго времени суток. Возникла необходимость в настройке глобального поиска версии 2.0. Выполнил все действия по инструкции https://academy.terrasoft.ru/documents/administration/7-16/nastroyka-se… .
В ходе настройки ошибок не возникло, но поиск не работает. Решил запустить переиндексацию сайта PUT запросом вида:
http://[GS-WEB-API]:81/indexation/{siteName}/reindex/full
и получил ошибку:
{"code":500,"status":"error","message":"System.ArgumentException: Format of the initialization string does not conform to specification starting at index 66.\n
at System.Data.Common.DbConnectionOptions.GetKeyValuePair(String connectionString, Int32 currentPosition, StringBuilder buffer, Boolean useOdbcRules, String& keyname, String& keyvalue)\n
at System.Data.Common.DbConnectionOptions.ParseInternal(Dictionary`2 parsetable, String connectionString, Boolean buildChain, Dictionary`2 synonyms, Boolean firstKey)\n
at System.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 synonyms)\n
at System.Data.SqlClient.SqlConnectionString..ctor(String connectionString)\n
at System.Data.SqlClient.SqlConnectionFactory.CreateConnectionOptions(String connectionString, DbConnectionOptions previous)\n
at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions)\n
at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key)\n
at System.Data.SqlClient.SqlConnection.set_ConnectionString(String value)\n
at ServiceStack.OrmLite.SqlServer.SqlServerOrmLiteDialectProvider.CreateConnection(String connectionString, Dictionary`2 options)\n
at ServiceStack.OrmLite.OrmLiteConnection.get_DbConnection()\n
at ServiceStack.OrmLite.OrmLiteConnection.Open()\n
at ServiceStack.OrmLite.OrmLiteConnectionFactory.OpenDbConnection()\n
at GlobalSearch.WebApp.HealthCheck.BaseChecker.GetFeatures(List`1 featuresCodes, String dbConnectionString, String dbType) in /src/Src/GlobalSearch.WebApp/HealthCheck/BaseChecker.cs:line 89\n
at GlobalSearch.WebApp.HealthCheck.FeaturesChecker.Check(Site site) in /src/Src/GlobalSearch.WebApp/HealthCheck/FeaturesChecker.cs:line 24\n
at GlobalSearch.WebApp.HealthCheck.SiteHealthChecker.CheckSite(Site site, ICollection`1 checkList) in /src/Src/GlobalSearch.WebApp/HealthCheck/SiteHealthChecker.cs:line 53\n
at GlobalSearch.WebApp.ServiceModel.Requests.Handlers.SearchManagement.GetSearchStateRequestHandler.GetCheckResult(GetSearchStateRequest request) in /src/Src/GlobalSearch.WebApp/ServiceModel/Requests.Handlers/SearchManagement/GetSearchStateRequestHandler.cs:line 34\n
at GlobalSearch.WebApp.ServiceModel.Requests.Handlers.SearchManagement.GetSearchStateRequestHandler.InternalHandle(GetSearchStateRequest request) in /src/Src/GlobalSearch.WebApp/ServiceModel/Requests.Handlers/SearchManagement/GetSearchStateRequestHandler.cs:line 46\n
at GlobalSearch.WebApp.ServiceModel.Requests.Handlers.BaseRequestHandler`1.Handle(TRequest request) in /src/Src/GlobalSearch.WebApp/ServiceModel/Requests.Handlers/BaseRequestHandler.cs:line 38"}
Подскажите, пожалуйста, чем может быть вызвана данная ошибка и как ее устранить ?
Нравится
Кирилл, похоже, ошибка происходит при попытке работать с базой, причём, не сайта 7.Х, а сайта глобального поиска. Проверьте правильность databaseConnectionString, который посылают через curl при регистрации сайта в глобальном поиске.
Зверев Александр,
Спасибо за ответ. Есть подозрение, что проблема в том, что для подключения к БД в databaseConnectionString я прописал учетку с указанием домена (т.е. domain\user) и судя по всему знак "\" недопустим. Подскажите, пожалуйста, какой командой удалить сайт глобального поиска , чтобы передобавить его с корректными реквизитами ?
Кирилл, имеете в виду это?
Важно
Чтобы изменить шаблон поиска, выполните DELETE запрос на /sites/{siteName}/search и действие AddSearch, описанное выше, после чего будет выполнена полная переиндексация сайта.
Kirill Polushin,
Кирилл, здравствуйте. А у вас Глобальный поиск развернут в одной локальной сети с SQL севером creatio?
при выполнении команды:
curl -v -X POST -d '{"templateName": "[TEMPLATE_NAME]"}' -H "Content-Type: application/json" http://[SERVER2_IP_ADDRESS]:81/sites/[SITE_NAME]/search Я получаю ответ: "code":500,"status":"error","message":"System.Exception: Could not check index 'hi7z0wyxvi3leufyv8rlaa5aeokhyvharozf3hqlxn1zh8xzthuyawswuw0dcdmn' exists
Не понял с индексацией. Куда вводить PUT запрос?
curl -v -X POST -d '{"templateName": "default.json"}' -H "Content-Type: application/json" http://[SERVER2_IP_ADDRESS]:81/sites/my-test-site/search - это я понял, а вот DELETE запрос без примера и действие AddSearch не описано, что куда. Не подскажите по подробнее
Максим, вводить PUT запрос необходимо на втором сервере в консоли.
Пример DELETE запроса можно найти в документации curl:
curl -X DELETE http://localhost:8080/user/100
После его выполнения необходимо также сделать http-запрос на подключение поиска.
Его пример в документации:
curl -v -X POST -d '{"templateName": "default.json"}' -H "Content-Type: application/json" http://[SERVER2_IP_ADDRESS]:81/sites/my-test-site/search
Рекомендую также ознакомится с более новой версией этой документации тут.