fix(indexer): не дублировать полный текст, если он уже есть у парсера
add_document слал index.enrich_full_text для КАЖДОГО документа с url, даже когда full_text уже пришёл от парсера (у КиберЛенинки — OCR-фрагмент прямо в ответе поиска). Страница статьи там HTML, не PDF — enrich гарантированно ничего не находит, только тратит запрос впустую. При массовой заливке (десятки источников параллельно) это давало шквал запросов к чужому сайту и 503 в ответ — саму заливку не ломало, но съедало время и нагружало источник без всякой пользы.
This commit is contained in:
@@ -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"]],
|
||||
|
||||
Reference in New Issue
Block a user