Доброго времени суток. Возникла необходимость в настройке глобального поиска версии 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"}

 

Подскажите, пожалуйста, чем может быть вызвана данная ошибка и как ее устранить ? 

 

Нравится

8 комментариев

Кирилл, похоже, ошибка происходит при попытке работать с базой, причём, не сайта 7.Х, а сайта глобального поиска. Проверьте правильность databaseConnectionString, который посылают через curl при регистрации сайта в глобальном поиске.

Зверев Александр,

Спасибо за ответ. Есть подозрение, что проблема в том, что для подключения к БД в databaseConnectionString я прописал  учетку с указанием домена (т.е. domain\user)  и судя по всему знак "\" недопустим. Подскажите, пожалуйста, какой командой удалить сайт глобального поиска , чтобы передобавить его с корректными реквизитами ?

Кирилл, имеете в виду это?

Важно

Чтобы изменить шаблон поиска, выполните DELETE запрос на /sites/{siteName}/search и  действие AddSearch, описанное выше, после чего будет выполнена полная переиндексация сайта.

Зверев Александр,

да, с api разобрался)  , спасибо

 

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

Рекомендую также ознакомится с более новой версией этой документации тут.

Показать все комментарии