Wednesday, July 8, 2026
高级过滤:用 finlight API 进行精确查询
高级过滤:用 finlight API 进行精确查询
宽泛的新闻流就是噪音。价值在于精确获取你真正关心的报道。finlight 为此提供了两种方式,而且它们可以 配合使用:
- 结构化过滤,用于常见场景(股票代码、国家、分类、来源、日期)。
- 查询语言,在
query字段中用于布尔逻辑和全文匹配。
本指南使用 POST /v2/articles 讲解这两者。如果你还没完成第一次调用,请先看
快速入门指南。
结构化过滤
这些是你最常用到的参数:
tickers— 公司,例如["AAPL", "NVDA"]countries— ISO 3166-1 alpha-2 国家代码,例如["US", "GB"]categories— 13 个分类中的一个或多个,例如["markets", "regulation"]sources/excludeSources/optInSources— 包含、排除或额外选入特定媒体from/to— 日期范围,YYYY-MM-DD或 ISO 8601 格式order(ASC/DESC)和orderBy(publishDate、createdAt、revisedDate)
一个简单的结构化请求:
curl -X POST https://api.finlight.me/v2/articles \
-H "X-API-KEY: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"tickers": ["AAPL", "NVDA"],
"categories": ["markets"],
"from": "2026-01-01",
"pageSize": 50
}'
查询语言
当你需要布尔逻辑或文本匹配时,使用 query 字段。它支持字段过滤、布尔运算符、分组、精确短语和通配符。
支持的字段
| 字段 | 匹配内容 | 示例 |
|---|---|---|
ticker | 公司股票代码 | ticker:AAPL |
exchange | 上市交易所 | exchange:NASDAQ |
isin | ISIN 代码 | isin:US0378331005 |
openfigi | OpenFIGI 标识 | openfigi:BBG000B9XRY4 |
source | 来源域名 | source:www.reuters.com |
country | 国家代码 | country:US |
category | 分类 | category:regulation |
title | 标题中的词 | title:"rate cut" |
content | 正文中的词 | content:"guidance" |
summary | 摘要中的词 | summary:merger |
运算符
AND/OR/NOT用于组合条件。- 括号
( )用于分组,例如(ticker:AAPL OR ticker:NVDA)。 - 引号
" "用于精确短语,例如content:"interest rates"。 - 通配符
*,可用于ticker、source和exchange,例如ticker:BRK*。 +/-用于要求或排除某个条件,例如+ticker:AAPL -category:crypto。
组合使用
查找关于苹果或英伟达的财报报道,但排除某个特定来源:
(ticker:AAPL OR ticker:NVDA) AND content:"earnings" AND NOT source:www.example.com
结构化过滤与查询字符串会被组合在一起(以 AND 连接),因此你可以混用。例如,用 query 表达布尔逻辑,
用 categories / from 作为结构化过滤:
// TypeScript
import { FinlightApi } from 'finlight-client';
const client = new FinlightApi({ apiKey: 'YOUR_API_KEY' });
const response = await client.articles.fetchArticles({
query: '(ticker:AAPL OR ticker:NVDA) AND content:"earnings"',
categories: ['markets'],
from: '2026-01-01',
pageSize: 50,
});
# Python
from finlight_client import FinlightApi, ApiConfig
from finlight_client.models import GetArticlesParams
client = FinlightApi(config=ApiConfig(api_key="YOUR_API_KEY"))
params = GetArticlesParams(
query='(ticker:AAPL OR ticker:NVDA) AND content:"earnings"',
categories=["markets"],
from_="2026-01-01",
pageSize=50,
)
response = client.articles.fetch_articles(params)
分页与深层历史
用 page 和 pageSize(每页最多 100 条)来翻页。有一条规则需要知道:偏移量(page * pageSize)的
上限是 10,000。要查询更久远的历史,不要一味增大 page,而应该用 from 和 to 缩小时间窗口,并在
每个窗口内翻页。这样可以保持查询快速,并让你遍历任意长度的历史。
接下来去哪里
- 正确使用股票代码与交易所 — 为多地上市的公司精确过滤。
- 按国家与分类获取全球新闻。
- 完整文档。
