Search guide

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

Supported syntax

All operators below are supported in both the Reports search bar and the LADD deposit search.

word word

Default (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

~N

Fuzzy 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

"..."~N

Phrase 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

Cheat sheet

word word

OR — either term

+word

AND — term required

-word

NOT — term excluded

"exact phrase"

Phrase — words in order

stem*

Prefix wildcard

word~1

Fuzzy — 1 edit distance

word~2

Fuzzy — 2 edit distances

"phrase"~N

Phrase proximity (slop)

( )

Grouping / precedence

a | b

Explicit OR

Tips

How to search effectively

🔍

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

Common queries

+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