Skip to content

Search engines

Currently, the following search engines exist in their own Ibexa DXP Bundles:

  1. Legacy search engine, a database-powered search engine for basic needs.
  2. Solr, an integration providing better overall performance, much better scalability and support for more advanced search capabilities.
  3. Elasticsearch, a document-oriented engine providing even better performance and scalability.

Legacy search engine

Legacy search engine is the default search engine, it is SQL-based and uses Doctrine's database connection. Its connections are defined in the same way as for storage engine, and no further specific configuration is needed.

Tip

The features and performance of Legacy search engine are limited. If you have specific search or performance needs you should look towards using Solr or Elasticsearch.

Using the Legacy search engine disables most shop features, such as product search.

Configuring Repository with Legacy search engine

Search can be configured independently from storage, and the following configuration example shows both the default values, and how you configure legacy as the search engine:

1
2
3
4
5
6
7
8
9
ibexa:
    repositories:
        main:
            storage:
                engine: legacy
                connection: default
            search:
                engine: legacy
                connection: default

Search engine comparison

Feature Elasticsearch Apache Solr Legacy Search Engine (SQL)
Filtering Yes Yes Yes, limited*
Query (filter with scoring) Yes Yes Only filters, no scoring
Fulltext search Yes, limited Yes Yes, limited**
Index-time boosting *** No No
Aggregations Yes Yes No

* Usage of Criteria and Sort Clauses for Fields does not perform well on medium to larger amount of data with Legacy Search Engine (SQL), use Solr for this.

** For more information about fulltext search syntax support, see Fulltext Criterion.

*** Elasticsearch offers query-time boosting instead.