Filtering Reference
Every search method (fastSearch, bulkSearch, aiSearch) accepts the same set of optional filter parameters. All filter fields are backed by Zod enums exported from the nosible package, giving you full IntelliSense autocomplete and compile-time validation.
Importing Enum Types
import {
NosibleClient,
// Enum schemas (for runtime validation / .enum access)
languageEnum,
countryEnum,
continentEnum,
regionEnum,
sectorEnum,
industryGroupEnum,
industryEnum,
subIndustryEnum,
iabTier1Enum,
iabTier2Enum,
iabTier3Enum,
iabTier4Enum,
algorithmEnum,
brandSafetyEnum,
// TypeScript types (for type annotations)
type LanguageEnum,
type CountryEnum,
type ContinentEnum,
type RegionEnum,
type SectorEnum,
type IndustryGroupEnum,
type IndustryEnum,
type SubIndustryEnum,
type IabTier1Enum,
type IabTier2Enum,
type IabTier3Enum,
type IabTier4Enum,
type AlgorithmEnum,
type BrandSafetyEnum,
} from "nosible";
Brand Safety
Controls which brand-safety classifications of content are returned.
| Field | Type | Description |
|---|---|---|
brandSafety | BrandSafetyEnum | Filter by content safety level |
Accepted values:
"Safe" | "Sensitive" | "Unsafe"
Values are capitalized ("Safe", not "safe"). Passing a lowercase value will produce a TypeScript compile error.
const results = await client.fastSearch({
question: "technology funding rounds",
nResults: 20,
brandSafety: "Safe",
});
Language
Filters results to a specific language using ISO 639-1 two-letter codes.
| Field | Type | Description |
|---|---|---|
language | LanguageEnum | ISO 639-1 language code |
Example values: "en", "fr", "de", "es", "zh", "ja", "ar", "pt", "ru", "ko"
The full list covers 90 languages. See languageEnum for all codes.
const results = await client.fastSearch({
question: "intelligence artificielle",
nResults: 10,
language: "fr",
});
Geography
Filter results by geographic location at continent, region, or country level.
| Field | Type | Description |
|---|---|---|
continent | ContinentEnum | Broad continental region |
region | RegionEnum | Sub-regional area |
country | CountryEnum | Full country name |
Continent values
"Africa" | "Asia" | "Europe" | "North America" | "Oceania" | "South America" | "Worldwide"
Region values (selected)
"Caribbean" | "Central Africa" | "Central America" | "Central Asia" | "Central Europe" |
"East Africa" | "East Asia" | "Eastern Europe" | "Middle East" | "North Africa" |
"North America" | "Northern Europe" | "Oceania" | "South America" | "South Asia" |
"Southeast Asia" | "Southern Africa" | "Southern Europe" | "West Africa" | "Western Europe" |
"Worldwide" | ...
Country values (selected)
Use the full country name — not ISO codes.
"Worldwide" | "United States" | "United Kingdom" | "Germany" | "France" | "Japan" |
"China" | "India" | "Canada" | "Australia" | "Brazil" | ...
See countryEnum for all 196 country names.
const results = await client.fastSearch({
question: "startup ecosystem",
nResults: 30,
continent: "Europe",
region: "Western Europe",
country: "Germany",
});
Industry Classification (GICS)
Filter by Global Industry Classification Standard (GICS) hierarchy.
| Field | Type | Description |
|---|---|---|
sector | SectorEnum | GICS sector (broadest level) |
industryGroup | IndustryGroupEnum | GICS industry group |
industry | IndustryEnum | GICS industry |
subIndustry | SubIndustryEnum | GICS sub-industry (most granular) |
Sector values
"Communication Services" | "Consumer Discretionary" | "Consumer Staples" | "Energy" |
"Financials" | "Health Care" | "Industrials" | "Information Technology" | "Materials" |
"Real Estate" | "Utilities" | "Other"
Example: filtering by sector and industry
const results = await client.fastSearch({
question: "cloud infrastructure spending",
nResults: 25,
sector: "Information Technology",
industryGroup: "Software & Services",
industry: "Software",
subIndustry: "Application Software",
});
IAB Content Taxonomy
Filter by IAB Tech Lab Content Taxonomy categories (up to four levels of hierarchy).
| Field | Type | Description |
|---|---|---|
iabTier1 | IabTier1Enum | Broadest content category |
iabTier2 | IabTier2Enum | Sub-category |
iabTier3 | IabTier3Enum | Further sub-category |
iabTier4 | IabTier4Enum | Most granular category |
IAB Tier 1 values
"Attractions" | "Automotive" | "Books and Literature" | "Business and Finance" |
"Careers" | "Communication" | "Crime" | "Disasters" | "Education" | "Entertainment" |
"Events" | "Family and Relationships" | "Fine Art" | "Food & Drink" | "Genres" |
"Healthy Living" | "Hobbies & Interests" | "Holidays" | "Home & Garden" | "Law" |
"Maps & Navigation" | "Medical Health" | "Personal Celebrations & Life Events" |
"Personal Finance" | "Pets" | "Politics" | "Pop Culture" | "Productivity" |
"Real Estate" | "Religion & Spirituality" | "Science" | "Sensitive Topics" |
"Shopping" | "Sports" | "Style & Fashion" | "Technology & Computing" | "Travel" |
"Video Gaming" | "War and Conflicts"
Example: filtering by IAB category
const results = await client.fastSearch({
question: "electric vehicle news",
nResults: 20,
iabTier1: "Automotive",
iabTier2: "Auto Technology",
iabTier3: "Green Vehicles",
});
Algorithm
The types of algorithms to use when scoring and ordering search results.
| Field | Type | Description |
|---|---|---|
algorithm | AlgorithmEnum | Ranking algorithm |
Accepted values:
| Value | Description |
|---|---|
"lexical" | Perform a standard keyword search using BM25 scoring. |
"string" | Runs an exact-match full-text search, returning only documents that contain your query verbatim. |
"hybrid-1" | First executes a semantic search to capture conceptual matches, then refines with a lexical search. |
"hybrid-2" | First use lexical search to narrow results, then refines the results with a semantic search. |
"hybrid-3" | Our most cutting edge search algorithm. Beats everything else. |
"baseline" | Standard semantic search. |
"hamming" | Hamming distance similarity. |
"company" | Optimised for company-name queries. |
const results = await client.fastSearch({
question: "merger and acquisition activity",
nResults: 50,
algorithm: "hybrid-2",
});
Combined Filtering Example
import {NosibleClient} from "nosible";
const client = new NosibleClient();
const results = await client.fastSearch({
question: "renewable energy investment",
nResults: 50,
algorithm: "hybrid-2",
brandSafety: "Safe",
language: "en",
continent: "Europe",
country: "Germany",
sector: "Energy",
iabTier1: "Science",
iabTier2: "Environment",
mustInclude: ["solar", "wind"],
mustExclude: ["nuclear"],
minSimilarity: 0.75,
publishStart: new Date("2024-01-01"),
});
console.log(`Found ${results.length} results`);
Other Filter Parameters
| Parameter | Type | Description |
|---|---|---|
nResults | number | Number of results (10–100 for fast, 1000–10000 for bulk) |
nProbes | number (1–10) | Index probe depth — higher = more recall, slower |
nContextify | number (64–1024) | Context window size for chunk matching |
minSimilarity | number (0–1) | Minimum semantic similarity threshold |
mustInclude | string[] (max 100) | Terms that must appear in results |
mustExclude | string[] (max 100) | Terms that must not appear in results |
companies | string[] (max 30) | Filter by company ticker symbols |
publishStart | Date | Earliest publication date |
publishEnd | Date | Latest publication date |
visitedStart | Date | Earliest crawl date |
visitedEnd | Date | Latest crawl date |
certain | boolean | Only return results with high confidence |
includeNetlocs | string[] | Whitelist specific domains |
excludeNetlocs | string[] | Blacklist specific domains |
sqlFilter | string | Raw SQL filter expression |