exa-search

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Exa Search Integration

Exa搜索集成

Quick Reference

快速参考

TopicWhen to UseReference
Search ModesChoosing between auto, neural, and keyword searchsearch-modes.md
FiltersDomain, date, text, and category filteringfilters.md
ContentsText extraction, highlights, summaries, livecrawlcontents.md
SDK PatternsPython (exa_py) and TypeScript (exa-js) usagesdk-patterns.md
主题使用场景参考链接
搜索模式在自动、神经和关键词搜索之间做选择search-modes.md
筛选器域名、日期、文本和分类过滤filters.md
内容获取文本提取、高亮显示、摘要、实时爬取contents.md
SDK使用模式Python(exa_py)和TypeScript(exa-js)的用法sdk-patterns.md

Essential Patterns

核心使用模式

Basic Search (Python)

基础搜索(Python)

python
from exa_py import Exa

exa = Exa(api_key="your-api-key")  # or set EXA_API_KEY env var

results = exa.search_and_contents(
    "latest developments in quantum computing",
    type="auto",
    num_results=10,
    text=True,
    highlights=True
)

for result in results.results:
    print(f"{result.title}: {result.url}")
    print(result.text[:500])
python
from exa_py import Exa

exa = Exa(api_key="your-api-key")  # or set EXA_API_KEY env var

results = exa.search_and_contents(
    "latest developments in quantum computing",
    type="auto",
    num_results=10,
    text=True,
    highlights=True
)

for result in results.results:
    print(f"{result.title}: {result.url}")
    print(result.text[:500])

Basic Search (TypeScript)

基础搜索(TypeScript)

typescript
import Exa from "exa-js";

const exa = new Exa(process.env.EXA_API_KEY);

const results = await exa.searchAndContents(
  "latest developments in quantum computing",
  {
    type: "auto",
    numResults: 10,
    text: true,
    highlights: true,
  }
);

results.results.forEach((result) => {
  console.log(`${result.title}: ${result.url}`);
});
typescript
import Exa from "exa-js";

const exa = new Exa(process.env.EXA_API_KEY);

const results = await exa.searchAndContents(
  "latest developments in quantum computing",
  {
    type: "auto",
    numResults: 10,
    text: true,
    highlights: true,
  }
);

results.results.forEach((result) => {
  console.log(`${result.title}: ${result.url}`);
});

Search with Filters

带筛选条件的搜索

python
results = exa.search_and_contents(
    "AI startup funding rounds",
    type="neural",
    num_results=10,
    include_domains=["techcrunch.com", "venturebeat.com"],
    start_published_date="2024-01-01",
    text={"max_characters": 2000},
    summary=True
)
python
results = exa.search_and_contents(
    "AI startup funding rounds",
    type="neural",
    num_results=10,
    include_domains=["techcrunch.com", "venturebeat.com"],
    start_published_date="2024-01-01",
    text={"max_characters": 2000},
    summary=True
)

Find Similar Links

查找相似链接

python
similar = exa.find_similar_and_contents(
    "https://example.com/interesting-article",
    num_results=10,
    exclude_source_domain=True,
    text=True
)
python
similar = exa.find_similar_and_contents(
    "https://example.com/interesting-article",
    num_results=10,
    exclude_source_domain=True,
    text=True
)

Search Mode Selection

搜索模式选择

ModeWhen to UseNotes
auto
Default for most queriesExa optimizes between neural/keyword automatically
neural
Natural language, conceptual queriesBest for "what is...", "how to...", topic exploration
keyword
Exact matches, technical terms, namesBest for specific product names, error codes, proper nouns
模式使用场景说明
auto
大多数查询的默认选择Exa会自动在神经/关键词搜索之间优化选择
neural
自然语言、概念类查询最适合“什么是……”“如何……”这类问题,以及主题探索
keyword
精确匹配、技术术语、名称最适合特定产品名称、错误代码、专有名词

Common Mistakes

常见错误

  1. Using
    keyword
    for conceptual queries
    - Neural search understands intent better; use
    auto
    or
    neural
    for natural language questions
  2. Not setting
    text=True
    - Search returns URLs only by default; explicitly request content with
    text=True
  3. Ignoring
    highlights
    - Use
    highlights=True
    for relevant snippets without downloading full page text
  4. Missing API key - Set
    EXA_API_KEY
    environment variable or pass explicitly to constructor
  5. Over-filtering initially - Start with broad searches, then add domain/date filters to refine
  6. Not using
    summary
    - For RAG applications,
    summary=True
    provides concise context without full page text
  7. Expecting scores in auto mode - Relevance scores are only returned with
    type="neural"
    ; auto mode doesn't include them
  1. 为概念类查询使用
    keyword
    模式
    - 神经搜索更能理解意图;针对自然语言问题请使用
    auto
    neural
    模式
  2. 未设置
    text=True
    - 默认情况下搜索仅返回URL;需显式设置
    text=True
    来请求内容
  3. 忽略
    highlights
    参数
    - 使用
    highlights=True
    可获取相关片段,无需下载完整页面文本
  4. 缺少API密钥 - 设置
    EXA_API_KEY
    环境变量,或在构造函数中显式传入
  5. 初始过滤条件过于严格 - 先从宽泛的搜索开始,再添加域名/日期筛选条件来细化结果
  6. 未使用
    summary
    参数
    - 对于RAG应用,
    summary=True
    可提供简洁的上下文,无需完整页面文本
  7. 期望自动模式返回评分 - 相关性评分仅在
    type="neural"
    模式下返回;自动模式不提供评分",