Search (the finder)
OnlyTons's search is one place to look for everything the platform knows about: products in the catalog, availability that producers have published, and requirements that buyers have posted. It replaces hunting through the catalog commodity by commodity.
There are two ways in:
Searchin the sidebar — the full screen, with filters down the left.- ⌘K (Ctrl+K on Windows and Linux) — the quick palette, from anywhere in the app. Type two letters and it starts finding things; press Enter to jump.
What you can find
| You are looking for | You will find |
|---|---|
| A product | The catalog entry, with its group and description |
| Availability | Individual listings, with their window, quantity, price and area |
| A requirement | Open demand from buyers, with the quantity and the date it is needed by |
| Land | Parcels offered for a crop still to be chosen, with their soil, water, area and window. See Land |
| An operator | Only the broker can search for operators. See below |
Searching in Italian and in English
The catalog is bilingual, and so is the search. Typing ceci finds the same product as typing chickpeas; olio extra finds the extra-virgin olive oil; farro finds spelt. You do not have to know which language a product was entered in.
Two more conveniences:
- Part of a word is enough. Typing
cecfinds ceci while you are still typing, and it works on every word —far perfinds farro perlato. - Land answers in both languages too, even though nothing about a parcel is written by hand: calcareo and calcareous, irriguo and drip, in conversione and in conversion all find the same ground. A parcel is described entirely by fixed lists, and OnlyTons publishes both languages of each one to the index.
- A typo is usually forgiven. If your spelling matches nothing at all,
OnlyTons tries again allowing for close spellings, so
ceccistill finds chickpeas. It only does this when the exact search found nothing, so a correct spelling is never diluted by near-misses.
Search uses the language you are currently reading the site in. Switch language in the sidebar and the same search may rank results slightly differently — that is the Italian and English dictionaries doing their jobs.
Filters
The panel on the left narrows the results. Every filter shows how many results it would give you, so you can see where the market is before you click.
| Filter | What it does |
|---|---|
| Type | Products, availability or requirements |
| Category | Raw, semi-processed, processed |
| Group | The product group — cereals, pulses, oil, and so on |
| Organic | Organic-qualified or not |
| Certification | Listings whose seller holds a given scheme |
| Area | Broad growing area |
| Quantity | The size of the lot, as a range |
| Price | Price per kilogram, as a range |
| Availability | Available now, a forward harvest, or a window that has closed |
Two things about those counts are worth knowing, because they are what makes the panel usable rather than a dead end:
- A filter still shows its count when you have already narrowed by something else in the same group. Tick "Organic" and "Not organic-qualified" still tells you how many there are, so you can always widen again.
- A count of zero is shown, not hidden. "Demeter (0)" is real information about this market.
Everything you tick goes into the address bar, so a filtered search is a link you can send to somebody or bookmark.
Why quantities, prices and areas are ranges
For the same reason they are ranges everywhere else on OnlyTons: an exact quantity, an exact date and a precise area together identify a farm even with no name attached. See Operator privacy.
Areas in search are shown as broad areas (for example Southern Italy) rather than as regions. That is one step coarser than what you see on a listing itself, and it is deliberate: a search box you can type a region into would let somebody find the only grower in a thin region by elimination.
Prices are grouped per kilogram so a lot priced per tonne and a lot priced per kilogram land in the same range. Listings priced on request are grouped together — their price is negotiated through the broker and is not published.
The two views
- List — the default. One card per result, with the operator's handle, the window, the quantity and the price.
- Timeline — the same availability results plotted on the availability timeline, so you can see when supply forms across the whole result set rather than product by product. Products and requirements have no window, so the timeline shows availability only; the list shows everything.
Why a result ranked where it did
Every result carries a match score. Open it and you get the full breakdown: how well the text matched, whether the goods are available now or are a forward harvest, whether they are organic-qualified, whether the operator is verified, and how recently the listing changed. Each line says, in words, why it scored what it scored.
There is no machine learning in this. The ranking is a fixed set of weighted factors, exactly like the broker's matching workspace, so a result's position is something that can be explained and argued with.
An unverified operator ranks lower — it is never hidden. Being unverified is a normal state for a real farm that has not been through verification yet.
What search will never do
You cannot look an operator up. Company names, VAT numbers, addresses, websites and contact details are not searchable, at any tier, by anyone except the broker. Searching for a company name returns nothing. This is the same rule as everywhere else on the platform — see Operator privacy — and search is the place it would be easiest to lose, because finding something is itself a disclosure: a search that returned exactly one result would have told you something about that operator even if the result showed no name.
The same applies to what listings are searchable by. A seller's private notes, their traceability notes and their exact region are not indexed, so no words from them can be used to find them.
Drafts and withdrawn-from-market listings. Your own drafts are not in search — manage them from Supply. Listings belonging to an organization that is suspended or not yet approved drop out of search immediately, including ones that were published before.
What visitors who are not signed in can search
The public Explore pages have their own search over the product catalog only, in both languages. It never returns listings, requirements or operators — only products, with availability shown as aggregated ranges. It is the same search index underneath, restricted to the part of it that carries no operator at all.
Under the hood
Search is served by one index (search_documents) that carries a
visibility_tier on every entry: anonymous (products), org_user (listings
and requirements) and broker (everything else, including operators and
drafts). One column, one predicate, one place to audit — which is why it is a
single index rather than a search box on each screen.
The index is updated inside the same database transaction as the change that caused it, so a listing is findable the moment it is published and stops being findable the moment it is withdrawn. A nightly job re-checks the whole index against its sources and repairs anything that drifted, and the broker can see the index's health — and rebuild it — from the search screen.
Nothing shown on a result card comes out of the index: every listing is re-read from its own record and passed through the same privacy projection as every other screen before it reaches you.