Haystack uses Elasticsearch's simple_query_string parser. This page documents every operator it supports — with examples from the mining domain.
Default behaviour
Without any operators, words are combined with OR — a report matches if it contains any of the terms. To require all terms, prefix each with +. The search runs against the full body text of report sections, not just metadata.
Operators
All operators below are supported in both the Reports search bar and the LADD deposit search.
word wordDefault (OR)
Multiple words separated by spaces are treated as OR — a report matches if it contains any of the words. This is the default behaviour with no operator.
copper gold
reports mentioning copper, gold, or both
porphyry epithermal skarn
any of the three deposit types
+AND (required term)
Prefix a word with + to make it required — the report must contain this term. Combine with other terms to build an AND query.
+copper +porphyry
must contain both copper AND porphyry
+gold +resource +indicated
all three terms required
+lithium brine clay
lithium required; brine or clay optional
-NOT (exclude term)
Prefix a word with - to exclude it. Reports containing this term will not appear in results.
gold -silver
gold but not silver
+copper -oxide
copper required, oxide excluded
resource estimate -historical
exclude historical resources
"..."Phrase search
Wrap words in double quotes to search for an exact phrase — all words in the quoted sequence must appear together in that order.
"mineral resource estimate"
exact phrase
"open pit" gold
exact phrase plus a keyword
"net smelter return" royalty
NSR royalty references
"heap leach" copper
heap leach copper projects
*Prefix wildcard
Append * to a word stem to match any word that starts with those characters. Only supported at the end of a term, not in the middle.
porphyr*
matches porphyry, porphyritic, porphyry-style…
geolog*
geology, geological, geologist, geologically…
drill*
drilling, drilled, drillhole, drill-hole…
+copper* +deposit*
copper-bearing terms AND deposit-related terms
~NFuzzy matching
Append ~1 or ~2 to a word to allow for typos or spelling variations. ~1 allows one character difference (insertion, deletion, substitution, transposition); ~2 allows two.
mineralisation~1
also matches mineralization (one substitution)
shear~1
matches shear, shears, share…
breccia~2
catches common misspellings
"..."~NPhrase proximity (slop)
Apply ~N after a quoted phrase to allow the words to appear within N positions of each other, and in any order. Useful when you know the terms co-occur but not their exact sequence.
"gold deposit"~3
gold and deposit within 3 words of each other
"copper resource"~5
copper and resource within 5 words
"drilling results"~2
drilling and results near each other
( )Grouping
Use parentheses to control precedence and group sub-expressions. Combine with +, -, and | to build complex queries.
(gold | silver) +porphyry
gold or silver, and porphyry required
+(copper | zinc) +"open pit"
copper or zinc in an open pit setting
(feasibility | prefeasibility) +gold -silver
feasibility-stage gold without silver
|Explicit OR
Use | between terms or groups to explicitly require OR logic. Functionally the same as a space, but useful for clarity in complex queries.
gold | copper | zinc
any base or precious metal
"open pit" | "underground"
either mining method
(Nevada | Queensland) +gold
gold from Nevada or Queensland
Quick reference
word wordOR — either term
+wordAND — term required
-wordNOT — term excluded
"exact phrase"Phrase — words in order
stem*Prefix wildcard
word~1Fuzzy — 1 edit distance
word~2Fuzzy — 2 edit distances
"phrase"~NPhrase proximity (slop)
( )Grouping / precedence
a | bExplicit OR
Tips
🔍
Start broad, then narrow
Begin with one or two keywords to see volume, then add + prefixes or phrase quotes to tighten results. "copper porphyry" returns more than +"copper" +"porphyry", but the latter is more precise.
📄
The query searches report body text
The search runs against the full text of report sections (not just titles or metadata). Phrases from technical reports work well — try terms like "resource estimate", "drill intercepts", or "geotechnical assessment".
🎯
Combine with filters for best results
Use the Filters panel for structured fields — commodity, company, country, date range. Reserve the search box for text-level content inside reports. Filters are exact; the search box is full-text.
✳️
Wildcards are prefix-only
porphyr* works. *phyry does not. The wildcard must appear at the end of a term. For mid-word matching, use fuzzy search (~1 or ~2) instead.
💬
Phrase slop handles field order
If you know two terms appear near each other but not in a fixed order, use "term1 term2"~N with a generous slop value (5–10). This catches inverted phrases like "estimate resource" when searching for "resource estimate".
⚠️
Special characters need escaping
If your search term contains +, -, |, (, ), ", ~, or * literally (e.g. a compound name), prefix each with a backslash: gold\-bearing. In practice, just removing the character usually works fine.
Real-world examples
+copper +"open pit" -underground
Open-pit copper projects only, no underground
"resource estimate" +gold +(indicated | inferred)
Gold resource estimates — indicated or inferred
drill* +intercept* +(copper | zinc | lead)
Drilling intercepts for base metals
"preliminary economic assessment" +lithium
PEA-stage lithium projects
geolog* +structure* +(fault | shear | fold)
Structural geology discussions
"heap leach" +(gold | copper) -silver
Heap leach gold or copper, excluding silver
+"net smelter return" +"royalty" +copper
Copper projects with NSR royalty terms
"mineralisation zone"~3 +(porphyry | epithermal | skarn)
Mineralisation zones near deposit type descriptions