diff --git a/apps/resm/tasks.py b/apps/resm/tasks.py index 8b7dcfd..a41b2c0 100644 --- a/apps/resm/tasks.py +++ b/apps/resm/tasks.py @@ -42,13 +42,16 @@ def get_paper_meta_from_openalex(publication_year:int, keywords:str="", search:s type="article" ) if keywords: + # 支持 '|' 表示 OR,',' 表示 AND。去除空白项。 if "|" in keywords: - keywords_list = keywords.split("|") + keywords_list = [k.strip() for k in keywords.split("|") if k.strip()] + pager = pager.filter_or(keywords={"id": keywords_list}) + elif "," in keywords: + keywords_list = [k.strip() for k in keywords.split(",") if k.strip()] + pager = pager.filter(keywords={"id": keywords_list}) else: - keywords_list = [keywords] - pager = pager.filter( - keywords={"id": keywords_list} - ) + keywords_list = [keywords.strip()] + pager = pager.filter(keywords={"id": keywords_list}) if search: pager = pager.filter( search=search