blog-post

Beyond MariaDB full-text search: how wine.co.za made about 145,000 records easier to search with Manticore

author image
View as markdown

For wine.co.za , search is about more than finding a bottle of wine.

The site's archive covers much of the South African wine industry: wines, wineries, contacts, international agents, news articles, and classified adverts. Visitors might be looking for a particular producer, an old article, or a wine they can describe but don't know by name.

wine.co.za used to rely on MariaDB full-text search, running full-text indexes and wildcard queries directly in the database. It worked, but visitors had to be fairly precise about what they typed.

Manticore Search, a full-text search engine that runs alongside MariaDB, made those searches more flexible and made search suggestions more useful. For Kevin Kidson , IT Director at WineNet, the other big benefit is that it needs very little attention:

“It is just so damn solid — build and forget — it has been running rock solid for years.”

An archive of the South African wine industry

Manticore powers search across all parts of wine.co.za. When Kevin shared details of the system, it indexed the following:

DatasetRecords
Wineries907
Wines45,833
Contacts4,644
International agents3,447
News articles41,602
Classified adverts48,482
Total in these collections144,915

There are a few smaller databases as well. Kevin describes wine.co.za as an archive for the South African wine industry, where every record matters.

The aim was straightforward: make all this information easier to find with a search engine that was easy to set up and could work alongside the existing application.

Before Manticore: visitors had to know what to type

Kevin describes the old search as a combination of full-text indexes and wildcard queries using patterns such as xx* and xx%.

“The user had to know what they were looking for, or at least how to start spelling it.”

That was limiting for someone who knew what kind of wine they wanted but didn't have a particular name in mind. They might want to search for:

dry chenin stellenbosch

Those three words describe a wine style, a grape variety, and a region. Kevin says multi-word search, the ability to combine them in one query, was the most important improvement Manticore brought to the site.

“It has allowed me to combine search words, so dry chenin from Stellenbosch etc — I could never do that before.”

Visitors can now describe what they want rather than having to start with a specific wine or winery name.

MariaDB remains the source of truth

The integration is simple. wine.co.za still stores and updates its data in MariaDB. Once a day, it copies the searchable data into Manticore. The website sends search queries through the .NET library.

MariaDB → daily indexing → Manticore Search → .NET application → wine.co.za search

MariaDB continues to handle the primary data, while Manticore handles search. The two work alongside each other rather than one replacing the other.

Ease of setup mattered because Kevin had little time to spare:

“It was very easy and logical to set up.”

He remembers the setup being spread over about two days because he was fitting it around other work. He estimates the total time spent installing Manticore and learning how to use it at about 24 hours.

Better search-as-you-type suggestions

Manticore also powers the autocomplete suggestions in wine.co.za's search boxes. These help visitors find what they're looking for before they've finished typing.

Kevin says Manticore is fast enough to generate suggestions as people type, and its more forgiving search makes the autocomplete dropdowns easier to build. Visitors aren't tied to a particular word order: they can type dry chenin stellenbosch or stellenbosch chenin dry.

That helps people who know the exact name of a wine or producer, as well as those who only know a few details about what they want. Both can use the same search box.

In his survey response, Kevin highlighted both improvements:

“MUCH better searching across the site — and MUCH better suggestions in drop-downs etc.”

wine.co.za hasn't shared detailed performance benchmarks. Kevin says the company is small and doesn't measure much, so there are no before-and-after latency or resource-use figures to report.

For Kevin, the more important point is that Manticore has been running reliably for years without needing much of his time. He would like to explore more of what it can do, but he's already happy with how it works.

For a small team, that's a practical benefit. Time that might otherwise go into maintaining search can go into other work.

“It's doing a brilliant job & I don't have to worry about it.”

Better search without a big engineering project

wine.co.za's setup shows how a separate full-text search engine can fit into an existing application without replacing the main database. MariaDB still stores the data. Manticore receives a copy each day, and the .NET application uses it for search.

The improvement is visible in ordinary searches. Someone looking for a dry Chenin from Stellenbosch can put those words together, try a different order, and get suggestions as they type. They don't have to know a specific wine name before they begin.

For Kevin, the value is in that combination: visitors have an easier time finding what they need, while search requires very little day-to-day attention from him.

Go from zero to Manticore in seconds

Install Manticore Search in one command on Linux or macOS:

curl https://manticoresearch.com | sh

For advanced installation options, see the full installation guide and the manual .