Как убедится в работе Global Search?

Добрый день, выполнял настройку elasticsearch по инструкции, linux+docker. Версия Creatio 7.17.1.1364 (.NET Core 3.1.15). Компоненты на машинах запустились без ошибок, дошел до момента когда нужно выполнить sql  скрипт. Для этого в Creatio добавил плагин SQL консоли, он там 1. Вот первый скрипт который запускаю:

БД Postgres
DO $$

DECLARE 
    GlobalSearchFeature VARCHAR(50) := 'GlobalSearch';
    GlobalSearchFeatureId uuid;
    GlobalSearchV2Feature VARCHAR(50) := 'GlobalSearch_V2';
    GlobalSearchV2FeatureId uuid;
    GS_RelatedEntityIndexingFeature VARCHAR(50) :=   'GlobalSearchRelatedEntityIndexing';
    GS_RelatedEntityIndexingFeatureId uuid;
    allEmployeesId uuid := 'A29A3BA5-4B0D-DE11-9A51-005056C00008';

BEGIN

   SELECT "Id" INTO GlobalSearchFeatureId FROM "Feature"
   WHERE "Code" = GlobalSearchFeature
   LIMIT 1;
   IF (GlobalSearchFeatureId IS NOT NULL)
      THEN
          IF EXISTS (SELECT * FROM "AdminUnitFeatureState" WHERE "FeatureId" = GlobalSearchFeatureId) THEN
             UPDATE "AdminUnitFeatureState" SET "FeatureState" = 1 WHERE "FeatureId" = GlobalSearchFeatureId;
          ELSE
              INSERT INTO "AdminUnitFeatureState" ("SysAdminUnitId", "FeatureState", "FeatureId") VALUES (allEmployeesId, '1', GlobalSearchFeatureId);
          END IF;
   ELSE
       GlobalSearchFeatureId := uuid_generate_v4();
       INSERT INTO "Feature" ("Id", "Name", "Code") VALUES (GlobalSearchFeatureId, GlobalSearchFeature, GlobalSearchFeature);
       INSERT INTO "AdminUnitFeatureState" ("SysAdminUnitId", "FeatureState", "FeatureId") VALUES (allEmployeesId, '1', GlobalSearchFeatureId);
   END IF;

   SELECT "Id" INTO GlobalSearchV2FeatureId FROM "Feature"
   WHERE "Code" = GlobalSearchV2Feature
   LIMIT 1;
   IF (GlobalSearchV2FeatureId IS NOT NULL)
    THEN
        IF EXISTS (SELECT * FROM "AdminUnitFeatureState" WHERE "FeatureId" = GlobalSearchV2FeatureId) THEN
            UPDATE "AdminUnitFeatureState" SET "FeatureState" = 1 WHERE "FeatureId" = GlobalSearchV2FeatureId;
        ELSE
           INSERT INTO "AdminUnitFeatureState" ("SysAdminUnitId", "FeatureState", "FeatureId") VALUES (allEmployeesId, '1', GlobalSearchV2FeatureId);
        END IF;
   ELSE
       GlobalSearchV2FeatureId := uuid_generate_v4();
       INSERT INTO "Feature" ("Id", "Name", "Code") VALUES (GlobalSearchV2FeatureId, GlobalSearchV2Feature, GlobalSearchV2Feature);
       INSERT INTO "AdminUnitFeatureState" ("SysAdminUnitId", "FeatureState", "FeatureId") VALUES (allEmployeesId, '1', GlobalSearchV2FeatureId);
   END IF;

  SELECT "Id" INTO GS_RelatedEntityIndexingFeatureId FROM "Feature" WHERE "Code" =GS_RelatedEntityIndexingFeature LIMIT 1;
  IF (GS_RelatedEntityIndexingFeatureId IS NOT NULL)
  THEN
  IF EXISTS (SELECT * FROM "AdminUnitFeatureState" WHERE "FeatureId" = Bulk_ES_DD_FeatureId) THEN
UPDATE "AdminUnitFeatureState" SET "FeatureState" = 1 WHERE "FeatureId" = GS_RelatedEntityIndexingFeatureId;
  ELSE
  INSERT INTO "AdminUnitFeatureState" ("SysAdminUnitId", "FeatureState","FeatureId") VALUES (allEmployeesId, '1', GS_RelatedEntityIndexingFeatureId);
  END IF;
  ELSE
  GS_RelatedEntityIndexingFeatureId := uuid_generate_v4();
  INSERT INTO "Feature" ("Id", "Name", "Code") VALUES (GS_RelatedEntityIndexingFeatureId, GS_RelatedEntityIndexingFeature, GS_RelatedEntityIndexingFeature);
  INSERT INTO "AdminUnitFeatureState" ("SysAdminUnitId", "FeatureState","FeatureId") VALUES (allEmployeesId, '1', GS_RelatedEntityIndexingFeatureId);
  END IF;
END $$;

Этот скрипт падает с ошибкой(но таймер у скрипта все таки стартует)

Вот второй скрипт:

Данные нужные подставил

 
UPDATE "SysSettingsValue"
SET "TextValue" = [укажите URL к индексу ElasticSearch, строка следующего типа: http://external.elasticsearch:9200/indexname]
WHERE "SysSettingsId" = (SELECT "Id" FROM "SysSettings" WHERE "Code" = 'GlobalSearchUrl' LIMIT 1 );

UPDATE "SysSettingsValue"
SET "TextValue" = [укажите URL к Global Search Service, строка следующего типа: http://SERVER2_IP_ADDRESS:81]
WHERE "SysSettingsId" = (SELECT "Id" FROM "SysSettings" WHERE "Code" = 'GlobalSearchConfigServiceUrl' LIMIT 1 );

UPDATE "SysSettingsValue"
SET "TextValue" = [укажите URL к Global Search Indexing Service, строка, сл. типа - http://SERVER2_IP_ADDRESS:82]
WHERE "SysSettingsId" = (SELECT "Id" FROM "SysSettings" WHERE "Code" = 'GlobalSearchIndexingApiUrl' LIMIT 1 );

Окей, раз скрипты не работают я пошел на:

 

/Nui/ViewModule.aspx#BaseSchemaModuleV2/FeaturesPage
Без /0/ потому что Linux.
Там нашел один единственный тумблер с надписью GlobalSearch, вот его и включил и сохранил, все ок.
Вопрос в следующем, как мне убедится что Глобальный поиск работает? И нужны ли все таки выполненные эти скрипты?
Если скрипты нужно выполнять, то где? в Postgres(на Linux)? или как это работает?

Нравится

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

Здравствуйте, скрипты необходимо запускать для корректного включения функциональности. Подскажите, какие ошибки возникают при выполнении скриптов?

Скрипты необходимо выполнять на базе данных приложения Creatio.

После выполнения скриптов нужно перезапустить сайт с очисткой Redis.

Далее создать тестовую запись и через минуту попробовать поискать её в глобальном поиске. 

Алёна Доля, здравствуйте, встретился с ошибкой с ссылкой на отсутствие переменных в psql, GlobalSearchUrl, GlobalSearchConfigServiceURL, GlobalSearchIndexingApiUrl

если есть пример того как должно выглядеть буду благодарен

Алёна Доля,

ещё вопрос не по теме  БД, на сервере с компонентами elasticsearch заметил что не дописал порт в команду curl, вопрос, как теперь удалить старую запись? Потому что сейчас не дает записать ничего из-за того что ранее уже записывал

Евгений Шевченко,

Для более быстрой настройки можете заполнить настройки GobalSearchUrl, GlobalSearchConfigServiceURL, GlobalSearchIndexingApiUrl  через интерфейс в разделе  "Системные настройки". Необходимые записи фильтруйте в разделе по коду.

ОШИБКА:  "globalsearchfeatureid" - не известная переменная

СТРОКА 14:    SELECT "Id" INTO GlobalSearchFeatureId FROM "Feature"

не подскажете в чем причина?

Добрый день!

Проблема заключалась в функционале страницы https://academy.terrasoft.ru/docs/user/ustanovka_i_administrirovanie/razvertyvanie_onsite/nastrojka_kontejnernyh_komponentov/nastroit_globalnyy_poisk

В ближайшее время мы исправим этот функционал в статье.



Воспроизводится проблема в результате использования кнопки Копировать код (скриншот во вложении).

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

Жмурко Сергей,

Всё ещё не поправлено :)

Андрей,

Добрый день! Проблема зарегистрирована для исправления в будущих версиях Creatio.

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