You have over 1 million products in your CS-Cart/Multi-Vendor and are expanding them with new categories? Now you’re seeking solutions to speed up handling searches over your massive inventory.
In the pursuit to engage your customers with a fast and seamless search on your website, it is better to get some initial information to understand how this all would come together and actually function. Knowing the fundamentals of getting this up you‘ll understand how to effectively service multiple searches performed within CS-Cart and choose an option that will work better for you.
From this post you will know:
- What are the features a good search engine solution must have?
- What are the good options to speed up search in your store?
- What is the amount of work required to connect a search engine?
- What are possible threats related to a search engine hooking up with your CS-Cart/Multi-Vendor?
Must-have features of a good database search engine
Among the features that you can get along with the modern search engines, the most popular are:
- Fuzzy search – search with automatic correcting typos and misspellings.
- Geospatial search – search with automatic detection of the object location according to its latitude and longitude.
- Sorting feature:
- Search by ranges (price, dates, sizes, etc.),
- Filters (by popularity, date, price) and filtering (including only desirable parameters).
- Near real-time indexing – a search that considers frequent updates in the database like availability in stock, dynamic pricing, supply positioning, product description details, etc.
- Faceted search – count of attributes like size, or color (for example, brand, type, purpose, screen resolution, matrix, diagonal, HDD, capacity)
- Full-text – search by single words, multiple forms of a word, sentence, multiple forms of a sentence
- Highlighting – visual indication of the words entered in the search bar, aka snippets
- Scalability – ability to expand database while it gets bigger without hampering the search speed
- Storage – search engine database as an additional source of storage
- Visualization – a user interface with reports that visualize search in a form of charts, tables, and maps helping to understand how data is consumed. The visualization may be used for search trend analysis or a timely discovery of security breaches.
- Security – ability to identify threats: web server problems, broken links, unauthorized access attempts represented on a dashboard.
Read more about features here.
Options to expand your 1 million-inventory store with a search
Let us first define what are the application areas and the distinctive features of each application.
Standard MySQL (full-text) search is not suitable for sites where the relevance of criteria is important when searching for products in the database.
MySQL is not designed to output the searched results in such a manner: “first show products by main fields, then show products by category”. Any attempts to do something like this:
- will slow down the store speed;
- will not work at all.
Sorting by relevance is not feasible with MySQL database search.
There is a ready-to-use add-on for CS-Cart in Searchanise. This is a good solution, but it might not be suitable if you need to consider the priority for different fields when specifying relevance. In addition, this solution provides a quick search for a CS-Cart/Multi-Vendor project only in case when your product inventory does not exceed about half a million products. If this number is bigger, the search slows down.
You could also consider Sphinx or ElasticSearch for integration into your business. Both engines are good in terms of the database search velocity.
Sphinx is the technology applied in the Searchanise application. But the latter implemented a more user-friendly interface and visualized reports.
The Sphinx original technology is the developers’ choice. It provides high speed for indexing the site changes: all the updates are quickly transferred to the engine making the search the most relevant.
ElasticSearch is one more way of making your CS-Cart/Multi-Vendor work with massive product counts. The advantage of ElasticSearch is its great API. A well-developed application programming interface makes it easier to integrate it into your application. But you should first get yourself acquainted with the features provided by the search engine original developer as you may not need all of them. People choose this solution for its convenient and comprehensive functionality: main search results page, all category listing pages with facets, and so on.
Note: both ElasticSearch and Sphinx should ideally be run on a separate server or multiple servers that act as nodes. Implementing either of them will require additional server resources to support the search engine software. Having it on a single server will limit its effectiveness.
Amount of work required to connect a search engine
Let us examine ElasticSearch as the most popular solution. Its integration should be implemented from scratch as it is not provided by default. Brand owners who are not satisfied with the search engine within their large stores (exceeding 500 000 items), can ask us to integrate ElasticSearch with their standard CS-Cart and/or Multi-Vendor based store. The time needed to hook it up will depend on the number of added features.
Take the faceted search feature which is in demand now. Connecting ElasticSearch, you can facet the product option search to make your store quickly display results by color, price range, brand, etc. On the backend, you could see:
– keyword analysis;
– keyword hints;
– bulk index products;
– synchronization of updates: when the product is updated, the elastic index is updated accordingly.
Threats of connecting a search engine
It is more likely that you encounter threats with heavy database queries inherited from the standard CS-Cart / Multi-Vendor configuration. If you have a large inventory and default CS-Cart / Multi-Vendor database management system, product searches can be challenging in your store. You should avoid complex and unoptimized queries then while optimizing product search. Here is what Roman, the Head of the Hosting Dept., says about performance (and search) optimization for the default MySQL database:
While much can be said about search, I don’t wish to speak at length. Instead, I would give just one piece of advice:
– Avoid LIKE searches with leading wildcard. The database will not use an index when using like searches with a leading wildcard (e.g. ‘%123%’).
Someone might say that without a % sign, a fast search is impossible. I would say it’s not true: you can apply Elasticsearch and Sphinx Search for these purposes. Integration with these tools will speed up the search in large-inventory stores many times.
Read more here.
Connecting one of the search engines to your large store, you increase your chances to expand your customer base. When customers can tape what they need in the search bar and quickly find it through other products in your store, they are more likely to buy. We can help you with hooking up a search engine for your CS-Cart/Multi-Vendor project, as we already have done this job before for other customers. Don’t postpone your success: the optimized search is what can help you to handle increasing queries to the database and output the best results to your customers.