| 123456789101112131415161718192021222324252627282930313233 |
- """搜索源规划 —— 根据 SearchIntent 生成多源召回策略与优先级."""
- from __future__ import annotations
- def openalex_publication_year_filter(year_from: int | None, year_to: int | None) -> str | None:
- yf = year_from
- yt = year_to
- if yf is not None:
- try:
- yf_i = int(yf)
- except (TypeError, ValueError):
- yf_i = None
- else:
- yf_i = None
- if yt is not None:
- try:
- yt_i = int(yt)
- except (TypeError, ValueError):
- yt_i = None
- else:
- yt_i = None
- if yf_i is not None and yt_i is not None:
- if yf_i > yt_i:
- yf_i, yt_i = yt_i, yf_i
- if yf_i == yt_i:
- return f"publication_year:{yf_i}"
- return f"publication_year:{yf_i}-{yt_i}"
- if yf_i is not None:
- return f"publication_year:>={yf_i}"
- if yt_i is not None:
- return f"publication_year:<={yt_i}"
- return None
|