feat(scraper): F1 — lista de motores SearXNG ampliada y configurable
Build & Deploy ResearchOwl / build-and-push (push) Successful in 7s
Build & Deploy ResearchOwl / build-and-push (push) Successful in 7s
_search_searxng hardcodeaba engines=duckduckgo,google,bing,brave, lo que ignoraba cualquier motor extra de la instancia (y dejaba la búsqueda coja cuando brave cae en rate limit y DDG en CAPTCHA, ambos observados en vivo). Ahora la lista vive en settings.searxng_engines (env SEARXNG_ENGINES, tunable por GitOps sin rebuild). Default ampliado con motores verificados contra la instancia el 2026-07-03: +startpage +mojeek +presearch +google news +bing news +internet archive scholar. Medido con queries reales: ~2x resultados y ~2x dominios únicos por ~+2s/query. Excluidos qwant (denied), yahoo (roto), wikidata (0 en texto) y wayback machine (duplicados). Sin cambios en k8s-manifests: use_default_settings:true ya trae todos estos motores configurados. El fallback a DDG queda intacto. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
228ea5c601
commit
200de018e4
@@ -27,6 +27,16 @@ class Settings(BaseSettings):
|
||||
searxng_url: str = Field(
|
||||
"http://searxng-svc.researchowl.svc.cluster.local:8080/search",
|
||||
)
|
||||
# Motores que el scraper pide a SearXNG (todos vienen configurados por los
|
||||
# defaults de la instancia, use_default_settings: true). Verificados en vivo
|
||||
# 2026-07-03: la lista ampliada duplica resultados y dominios únicos (~2x)
|
||||
# por ~+2s/query, y da redundancia cuando brave/DDG caen en rate limit o
|
||||
# CAPTCHA. Excluidos: qwant (access denied), yahoo (roto), wikidata (0
|
||||
# resultados en queries de texto), wayback machine (duplica contenido vivo).
|
||||
searxng_engines: str = Field(
|
||||
"duckduckgo,google,bing,brave,startpage,mojeek,presearch,"
|
||||
"google news,bing news,internet archive scholar"
|
||||
)
|
||||
request_timeout: int = Field(30)
|
||||
request_delay: float = Field(1.0) # seconds between requests
|
||||
min_content_length: int = Field(200) # chars
|
||||
|
||||
Reference in New Issue
Block a user