fix(indexer): не дублировать полный текст, если он уже есть у парсера
All checks were successful
Deploy / test (push) Successful in 3m6s
Deploy / deploy (push) Successful in 11s

add_document слал index.enrich_full_text для КАЖДОГО документа с url,
даже когда full_text уже пришёл от парсера (у КиберЛенинки — OCR-фрагмент
прямо в ответе поиска). Страница статьи там HTML, не PDF — enrich
гарантированно ничего не находит, только тратит запрос впустую. При
массовой заливке (десятки источников параллельно) это давало шквал
запросов к чужому сайту и 503 в ответ — саму заливку не ломало, но
съедало время и нагружало источник без всякой пользы.
This commit is contained in:
jze9
2026-08-25 16:27:21 +05:00
parent 729b41bbfb
commit 43034eda33

View File

@@ -325,8 +325,12 @@ def add_document(doc_data: dict[str, Any], dispatch_embed: bool = True) -> dict[
queue="queue.gpu",
)
# Обогащение полным текстом: скачать PDF по url и пересчитать fingerprints
if settings.FETCH_FULL_TEXT and doc_data.get("url"):
# Обогащение полным текстом: скачать PDF по url и пересчитать fingerprints.
# Если full_text уже есть (например, OCR-фрагмент из ответа поиска
# КиберЛенинки) — не дублируем запрос: страница статьи там HTML, а не PDF,
# enrich_full_text гарантированно ничего не найдёт, только зря нагрузит
# источник (и получит 503 при массовой заливке).
if settings.FETCH_FULL_TEXT and doc_data.get("url") and not doc_data.get("full_text"):
celery_app.send_task(
"index.enrich_full_text",
args=[doc_id, doc_data["url"]],