Queries
Construct search queries with filters, categories, language, and pagination
Queries
SearchQuery controls what to search for and how. All fields except query are optional.
Basic Query
use a3s_search::SearchQuery;
let query = SearchQuery::new("rust programming");
let results = search.search(query).await?;response = await search.search("rust programming")const response = await search.search('rust programming');Search with Options
use a3s_search::{SearchQuery, SafeSearch, TimeRange, EngineCategory};
let query = SearchQuery::new("rust async runtime")
.with_categories(vec![EngineCategory::General])
.with_language("en-US")
.with_safesearch(SafeSearch::Moderate)
.with_page(1)
.with_time_range(TimeRange::Month)
.with_engines(vec!["ddg".into(), "brave".into(), "bing".into()]);SearchQuery builder methods:
Prop
Type
response = await search.search("rust async runtime",
engines=["ddg", "brave", "bing"],
limit=5,
timeout=15,
)SDK search options:
Prop
Type
const response = await search.search('rust async runtime', {
engines: ['ddg', 'brave', 'bing'],
limit: 5,
timeout: 15,
});SDK search options:
Prop
Type
Target Specific Engines
// Only DuckDuckGo and Bing
let query = SearchQuery::new("rust")
.with_engines(vec!["ddg".into(), "bing".into()]);
// Only Chinese engines
let query = SearchQuery::new("Rust 编程")
.with_engines(vec!["sogou".into(), "360".into()]);Engines not in the list are skipped for this query. If with_engines is not called, all registered engines are queried.
# International engines
response = await search.search("rust", engines=["ddg", "brave", "bing", "wiki"])
# Chinese engines
response = await search.search("Rust 编程", engines=["sogou", "360"])// International engines
const response = await search.search('rust', {
engines: ['ddg', 'brave', 'bing', 'wiki'],
});
// Chinese engines
const response2 = await search.search('Rust 编程', {
engines: ['sogou', '360'],
});A3SSearch API (Python / Node.js)
Prop
Type
All methods are async except set_proxy_pool_enabled and is_proxy_pool_enabled.
Prop
Type
Categories
pub enum EngineCategory {
General,
Images,
News,
Videos,
Science,
}Engines declare which categories they support via EngineConfig.categories. When a query specifies categories, only engines matching those categories are queried.
Safe Search
pub enum SafeSearch {
Off,
Moderate,
Strict,
}Only engines with safesearch: true in their config respect this setting. Currently supported by DuckDuckGo, Brave, Bing, and Google.
Time Range
pub enum TimeRange {
Day,
Week,
Month,
Year,
}Filters results by recency. Engine support varies.
Pagination
let page1 = SearchQuery::new("rust").with_page(1);
let page2 = SearchQuery::new("rust").with_page(2);Only engines with paging: true support pagination (DuckDuckGo, Brave, Bing, Google).
# Python SDK does not expose a page parameter directly.
# Use the Rust crate for paginated queries.// Node.js SDK does not expose a page parameter directly.
// Use the Rust crate for paginated queries.