A properly built index is one of the key factors for a search engine to perform fast and reliably. We would like to introduce an improved indexing methodology, which we’re adopting with the
v1.19.0 version of FiboSearch. Here comes parallel indexing!
Please consider that having a custom index is itself a FiboSearch Pro feature. This article is mainly aimed at our Pro adopters.
- Identifying the issue with index building
- FiboSearch Free vs Pro – different search engines
- Parallel indexing
- Disabling parallel indexing
While building the index is a relatively simple and foolproof process, there is a special caveat. While the index is being built, any more complex search functionalities are inaccessible – we’ll get into more detail soon. This might not be a problem for smaller stores, where the whole process takes a minute or two. But for stores with thousands and more products, you’ll ultimately want your customers to be able to use all the sophisticated search tools while the index is being rebuilt.
We’ve tweaked and improved the search building process. From now on, the old index will be available for your customers throughout the entire process while the new index is being built. Only after this has finished will the older index be removed and the new one take its place. The technicalities of the process will be described in further sections.
To elaborate on the previous methodology, it’s a good starting point to state the difference between the FiboSearch Free and Pro versions. Despite both of them offering great speed and search relevance, they use different methodologies to achieve the results.
FiboSearch Free uses an ordinary
WP_Query class for any search-related tasks. If you’re more interested in this topic, please refer to this article. This method is efficient enough for simple searches, but lacks the flexibility that comes with our Pro features.
On the other hand, FiboSearch Pro uses its own, custom built index. With this functionality come all the goodies that make the Pro version stand out: ultra-fast search engine, fuzzy search, searching in custom fields, adding synonyms lists, and dozens of other features. A full list of differences between Free and Pro versions can be found on this list.
Up to this point, while building/rebuilding the index, the Pro version had to resort to the
WP_Query for search-related tasks. This also meant that all the bells and whistles were missing until the index was finally rebuilt. Worse still, we had to narrow down the search process to product names only, for speed related reasons.
Here’s a visual example of the difference between the previous and current method. Let’s assume that the customer wants to search for some product using a custom field. We’ll show you this based on a unique ISBN number in our mockup store, The Bookstore Online. With version
v1.18.0 and lower, the index rebuilding process will make it impossible – all the Pro features are blocked.
v1.19.0, a customer can search via ISBNs to their hearts’ content, even with the index building process running in background.
With the adoption of parallel indexing, we’re ditching the
WP_Query workaround for our Pro users. Now your clients will be able to use the search engine as usual, based on the previously up-to-date index, while the new indexing is built in the background. All the Pro features will remain intact. Only after the newer index has been finished will the old tables be replaced by the new ones.
Important notice! There is one case when the use of the previous index-building method is a must – updating the plugin. Please consider manually updating FiboSearch when the traffic in your store is limited, preferably at night.
- As there’ll temporarily be two parallel indexes in your database, it’s worth considering that the database will be bigger for the time being. Make sure that the size of your database is suitable for this process. Consult with your hosting or database administrator should any issues arise.
- During the building process, a different message will appear
- During the building process a different message might also appear:
For those of you who don’t want to use parallel indexing, you can disable it completely. Please add this code to your
define( 'DGWT_WCAS_PARALLEL_INDEX_BUILD', false );