10. 1. 2024
10 min read
Search bar solutions Algolia, Elastic and Luigi's Box compared
In this blog, we take a look at three leading 3rd party search solutions: Algolia, Elastic Search, and Luigi's Box. This exploration meticulously dissects and compares their features, providing insights into their differences.
Kristián Müller
1. What are the key features and functionalities offered by third-party search solutions?
ALGOLIA
Search-as-you-type: Algolia’s search-as-you-type experience is designed to deliver instant results, with each keystroke. This means that users can find what they’re looking for faster than ever before.
Relevance: Algolia’s relevance engine is designed to deliver the most relevant results for each query, based on a variety of factors including popularity, recency, and user behavior.
Autocomplete: Algolia’s autocomplete feature provides suggestions to users as they type, based on their search history and the most popular queries.
Analytics: Algolia provides insights into what users are searching for, what they’re clicking on, and much more.
ELASTIC SEARCH
Search-as-you-type: As the user types in the search box, the search engine returns results in real-time.
Typeahead: Use language prediction tooling to provide suggestions to users as they type queries.
Highlighting: Highlight matching terms in search results to help users find what they’re looking for.
LUIGI’S BOX
Search: Luigi's Box provides a search engine that is based on AI, which provides a personalized search experience for every visitor.
Analytics: Luigi's Box provides an Admin UI, which includes extensive analytics and reporting capabilities.
Recommender: Recommender displays product suggestions in your e‑shop, personalized to every visitor with AI, based on their preferences and previous online behavior.
2. What types of data sources does the third-party search solution support? Can it handle structured, unstructured, and semi-structured data?
ALGOLIA
Algolia supports mainly structured data, but it can also handle unstructured and semi-structured data, there may be some preprocessing required to make the data compatible with Algolia’s search engine before it can be indexed.
ELASTIC SEARCH
Elastic Search supports structured, unstructured, and semi-structured data.
LUIGI’S BOX
Any information about the data sources that Luigi's Box supports couldn't be found, but after reviewing the documentation, it appears that structured data are supported.
3. What is the process for integrating the third-party search solution with an existing system or application?
ALGOLIA
Install packages:
algoliasearch - SDK which allows us to connect to the Algolia search engine
react-instantsearch - Package that provides headless components and hooks for building a search box
The indexing process is straightforward. It involves providing data in the form of an array of objects, where each object represents a record. Each object in the array should have a key representing the searchable attribute and a value representing the returning value from the search. Additionally, each object should include a unique identifier (
objectID
) which is used for updating or deleting the record at a later stage.A variety of attributes/settings are offered by Algolia, which can be used to customize the search engine. For example, searchable attributes, attributes to be returned, attributes to be highlighted, custom ranking, etc., can be specified.
ELASTIC SEARCH
Integrating Elastic Search with an existing system or application should be fairly simple, following the documentation.
LUIGI’S BOX
According to the documentation, it should be fairly simple to integrate Luigi's Box with an existing system or application.
An account needs to be created to integrate Luigi’s Box, where a script tag is obtained and must be added to the code.
Following that, the integration of the product catalog needs to be performed, which can be accomplished either through Luigi's Box API or manually through the Admin UI using an XML or CSV feed.
Finally, the remaining steps described in the documentation need to be followed.
4. How does the third-party search solution handle security and access control for sensitive data?
ALGOLIA
With the enterprise add-on, Algolia provides a feature called Algolia vault, which provides two things:
Advanced Encryption Standard (AES), specifically AES-256, for disk encryption at rest, with per-server keys.
Configurable firewall to restrict access to specific IP addresses.
ELASTIC SEARCH
Elastic Search has a built-in tool called X-Pack, which provides security features such as authentication, authorization, encryption, and auditing.
More info about the security features can be found in the documentation.
LUIGI’S BOX
Information regarding the encryption of data was not found. The only security-related detail discovered is that a majority of the available endpoints utilize HMAC authentication to restrict access.
5. What analytics and reporting capabilities does the third-party search solution offer? Can it provide insights into user behavior and search patterns?
ALGOLIA
Algolia provides analytics and reporting capabilities through its Analytics feature.
It keeps track of the following metrics:
Searches: Most popular searches on the website. Includes metrics, such as:
The most popular query terms, The number of times they’ve been searched, CTR, CVR, etc.
Searches without results: Queries that didn’t return any results. Includes metrics, such as:
The most popular query terms without results, The number of times they’ve been searched, and The percentage of all searches made up by this query term
Searches without clicks: Searches with a 0% click-through rate. Inludes metrics, such as:
The most popular search terms with 0% click-through rate, The number of times they’ve been searched, and The percentage of all searches made up by this query term
Results: Most popular search results. Includes metrics, such as:
The most popular results across all searches, The number of times they’re returned, CTR, and CVR
And many others...
More info about the metrics can be found in the documentation.
The important thing is that Algolia can be also integrated with Google Analytics by injecting a middleware into the InstantSearch lifecycle.
More info about the integration with Google Analytics can be found in the documentation.
ELASTIC SEARCH
Elastic Search's Simple UI package offers a/an plugin/extension, which provides analytics and reporting capabilities.
Integration with Google Analytics may be also possible but it looks like that only with external tools.
Even though Elastic Search doesn't provide an integration with Google Analytics, it offers its tool called kibana which is a data visualization dashboard that has extensive capabilities for analyzing data.
LUIGI’S BOX
As mentioned, Luigi's Box provides an Admin UI, which includes extensive analytics and reporting capabilities.
In the Admin UI, a graph is available that illustrates the number of users who searched for something, whether they converted, the reasons for non-conversion, and the specific searches they conducted.
Information about the most popular searches, lost searches, searches with no results, and other relevant data can also be found.
6. What type of support and documentation does the third-party search solution offer?
ALGOLIA
A well-written documentation is provided by Algolia, encompassing everything that needs to be known about the product, from the basics to advanced topics.
As written by Algolia, in the pricing section, they offer API Status updates, Email and web support {from the Grow plan upwards}, and Standard / Extended support {from the Premium plan upwards, after contacting their sales}.
ELASTIC SEARCH
Depending on the specific plan chosen, Elastic Search offers various support options.
For the Premium and Enterprise plans, Elastic Search offers 24/7/365 phone and email support, 8 support contacts, and a target initial response time as low as 30 minutes for critical issues when using Elastic Cloud service.
For more info about the support that is included in each pricing plan see the pricing page.
LUIGI’S BOX
They offer basic REST API documentation, which can be found here.
Only a form that needs to be filled out is available on the contact page to get in touch with them.
They may offer support through email or phone, with a lower response time after contacting their sales.
7. What is the pricing model for the third-party search solution? Are there any additional costs for support or maintenance?
ALGOLIA
Algolia offers a variety of pricing plans, from the build {/free} plan to the elevate {/enterprise} plan, which includes neural search.
The pricing is based on the number of records {objects} that are indexed and the number of requests that are made to the search engine.
The Grow plan includes 10K requests/month and 100,000 records. Additional requests are $0.50 per 1,000 search requests/month.
Enterprise plans such as Premium or Elevate are custom and require contacting their sales.
More info about the pricing can be found on the pricing page.
ELASTIC SEARCH
Elastic Search offers a variety of pricing plans, from the Standard plan {As low as $95/month} to the Enterprise plan {As low as $175/month}.
Support and maintenance should be included in the price.
More info about the pricing can be found on the pricing page.
LUIGI’S BOX
Information about the pricing model is not available on their website, as they only provide a form that needs to be filled out to receive a quote.
The form can be found on the pricing page.
8. Does the third-party search solution provide any tools or mechanisms for monitoring and optimizing search performance?
ALGOLIA
As mentioned, Algolia provides well-written documentation, as well as many blog posts that describe the best practices on how to format and structure the data, for the best performance.
ELASTIC SEARCH
As mentioned above, Elastic Search provides a tool called kibana which is a data visualization dashboard that has extensive capabilities for analyzing data and monitoring performance.
LUIGI’S BOX
As mentioned above, Luigi's Box provides an Admin UI, which includes extensive analytics and reporting capabilities.
In the Admin UI, a graph is available that illustrates the number of users who searched for something, whether they converted, the reasons for non-conversion, and the specific searches they conducted.
Additionally, information about the most popular searches, lost searches, searches with no results, and more can be found.
9. Is it possible to use this tool for preview environments? Does one account support multiple environments with their own data sets? If yes, can new environments be set up programmatically via the API?
ALGOLIA
When employing the single index per environment approach, the creation of new indexes programmatically for each preview environment should be achievable in the following manner:
const algoliasearch = require('algoliasearch')
// Connect and authenticate with your Algolia appconst client = algoliasearch('YourApplicationID', 'YourWriteAPIKey')
// Create a new index and add a recordconst index = client.initIndex('test_index')
const record = { objectID: 1, name: 'test_record' }
index.saveObject(record).wait()
With Premium and Elevate, the capability to create up to 1000 indexes should be available. {https://support.algolia.com/hc/en-us/articles/4406981895313-How-many-indices-can-I-create-}
Algolia creates a new index when you add a new object or add a setting to an empty index for the first time. Initializing a new index with the API client doesn’t create a new index on Algolia’s servers.
ELASTIC SEARCH
Achieving this may be possible by employing a similar approach as with Algolia, but no information could be found in their documentation.
LUIGI’S BOX
Information about implementation in other environments is not available, except for a mention of development mode in this section.
10. Does this tool provide support for filtering, sorting, and grouping based on type? This functionality is essential for both the search results page and grouping within the search results dropdown.
ALGOLIA
Grouping - https://www.algolia.com/doc/ui-libraries/autocomplete/guides/including-multiple-result-types/
ELASTIC SEARCH
LUIGI’S BOX
The
type
property, which is required, should allow the splitting of results into distinct categories or buckets in the search results dropdown component.
11. What transformations are necessary to prepare our data for indexing? Please provide an example using the data structure mentioned in the issue.
ALGOLIA
Data should be prepared into Algolia records, where an Algolia Record is a collection of attributes, and each attribute consists of a name and a value, forming a key-value pair.
Your records should only include information that helps with searching, showing results, sorting, and relevance. You can leave everything else out.
ELASTIC SEARCH
Similar to Algolia, the data should be transformed into JSON format, which is likely to be sent in the body of a request to the REST API.
Before initiating the process, it is necessary to create an index, execute properties type mapping, and only then proceed with performing document writing.
LUIGI’S BOX
Example request body:
{ "objects": [ { "identity": "https://myshop.example/products/1", // Required "type": "item", // Required "fields": { "title": "Blue Socks", "description": "Comfortable socks", "price": "2.9 €", "color": "blue", "material": "wool" } } ]}
12. Mention some cool tool-specific features.
ALGOLIA
Neural search {AI} ⇒
Enterprise plan
- https://www.algolia.com/doc/guides/getting-started/neuralsearch/Easily create A/B tests through API - https://www.algolia.com/doc/api-reference/api-methods/add-ab-test/
Define synonyms for some specific or generic search term - https://www.algolia.com/doc/api-client/methods/synonyms/
Custom ranking {would allow us to set higher popularity for a specific expert or brand for example} - https://www.algolia.com/doc/guides/managing-results/must-do/custom-ranking/
ELASTIC SEARCH
Vector search {would require more things to set than Algolia} - https://www.elastic.co/guide/en/elasticsearch/reference/master/knn-search.html
Query profiler/optimizer - https://www.elastic.co/guide/en/elasticsearch/reference/current/search-profile.html
Machine learning
Elastic machine learning features automatically model the behavior of your Elasticsearch data — trends, periodicity, and more — in real-time to identify issues faster, streamline root cause analysis, and reduce false positives.
LUIGI'S BOX
AI-powered search
Fixit - a feature that would allow us to set corrections for queries that users type wrong
Term boosting
Synonym recommendations
In our exploration of third-party onsite search solutions, we've witnessed the diverse strengths each option brings to the table. It's important to note that there's no one definitive, perfect solution – the choice depends on your project's unique needs. As you embark on enhancing your onsite search experience, consider the nuances of each solution and align them with your specific requirements. There might not be a one-size-fits-all, but with the right understanding of your project goals, you can choose the solution that fits seamlessly into your digital landscape.
You might
also like