Не корректно работает глобальный поиск после обновления.
Добрый день.
Глобальный поиск и дедубликация ранее корректно работал на версии 2.0, после перевода его на 3.0, стал странно работать.
В системе есть раздел Purchase в нем порядка 25 млн записей.
Глобальный поиск его судя по всему не проиндексировал, поиск по нему не происходит, хотя я принудительно пытаюсь его проиндексировать через
/indexation/SiteName/Purchase/reindex/full мне в ответе приходит ОК, но ничего не происходит.
После запуска дедубликации по этому разделу она в базе mongo сразу стает завершенной без ошибок, а в интерфейсе остается на 0%.
По базовому разделу контакты дедубликация проходит тоже частично успешно, находит не все дубли. В mongo пишет, что обработано меньше записей, чем должно.
В mongo залазил согласно https://community.terrasoft.ua/articles/kak-proverit-nalichie-zapuschen…
Ошибок по логам контейнеров не нашел. Подскажите может, кто-то сталкивался с такой проблемой, возможно есть дополнительные настройки? Спасибо.
Нравится
Добрый день, Владимир!
Возможно, очередь не долшла к записям из этого раздела.
Полная переидексация для БД только в разделе Purchase может проходить достаточно долго.
Можно посмотреть значения колонки LastIndexeOn для раздела Purchase в таблице IndexingEntity в базе глобального поиска Postgres. Когда индексация дойдет к этому разделу значения из этой колонки начнет расти и можно будет поискать записи после завершения индексации раздела.
Как узнать завершилась ли индексация глобального поиска в on-site?
В БД глобального поиска, есть таблица IndexingEntity, которая отвечает за настройки индексации для каждой отдельной сущности, например Контакт, Средства связи контакта и т.д.
В ней есть 2 колонки, которые важны для понимания завершилась ли первичная индексация или нет:
-
LastIndexedOn - дата последней итерации индексации.
-
InProcess - в процессе ли индексация (одной итерации) по текущей сущности.
Индексация завершилась для конкретной сущности, лишь тогда, когда LastIndexedOn = дата подключения сайта к ГП и в InProcess установлено значение “false“.
Полностью индексация завершена, когда для всех записей из таблицы "IndexingEntity" значения в LastIndexedOn и InProcess установлены аналогично описанию выше.
Порядок настройки
-
Зайти в контейнер с БД глобального поиска.
docker exec -it gs-postgres bash
-
Подключиться к БД глобального поиска.
psql -d postgres -U postgres
-
Выбрать, все записи из таблицы IndexingEntity.
SELECT "EntityName", "LastIndexedOn", "InProcess" FROM "IndexingEntity";
P.S. Планировщик (который ответственный за первичную индексацию) запускается раз в 50 дней, таким образом доиндексирует\актуализирует необходимое.
То есть, это к тому, что каждые 50 дней эта дата будет обновляться.
Жмурко Сергей,
Спасибо за совет. Таблица показала, что LastIndexedOn везде пусто и InProcess везде false. То-есть индексация совсем не начиналась, хотя по контактам даже дубли находит. В логах контейнера с прогрессом были ошибки по вставке дублей в эту таблицу. Таблицу очистил попробую перезапустить все.