---
title: "Should I enable eDisMax with Acquia Search?"
date: "2023-09-29T17:55:14+00:00"
summary:
image:
type: "article"
url: "/acquia-cloud-platform/help/93191-should-i-enable-edismax-acquia-search"
id: "42101f64-24db-44cc-941d-dd90ecf0fbac"
---

Table of contents will be added

eDisMax
=======

The [Extended Disjunction Maximum "eDisMax" Query Parser](https://solr.apache.org/guide/6_6/the-extended-dismax-query-parser.html) is a powerful Solr query parser your team can implement to customize your implementation of Acquia Search. eDisMax is an improved version of the [DisMax query parser](https://solr.apache.org/guide/6_6/the-dismax-query-parser.html).

The original DisMax query parser was created to reduce the number of errors in user-facing systems with limited management control that result from direct user queries. The problems that usually arose in these kinds of systems were often down to the fact that they exposed technical inputs to non-technical people.  
  
Among eDisMax’s main features lies its ‘boost’ parameter. Boost raises the score of a query in similar fashion to DisMax’s ‘bf’ parameter, but it’s multiplicative not additive, (if you are interested in knowing more, you can find other features [here](https://solr.apache.org/guide/7_7/the-extended-dismax-query-parser.html#TheExtendedDisMaxQueryParser-Fieldaliasingusingper-fieldqfoverrides)).  
  
If implemented incorrectly, eDisMax can negatively impact the performance of Solr and your Acquia Search implementation. Follow the below guidelines when implementing eDisMax for your Acquia Search implementation to prevent negative performance impacts.

How to configure edismax on Drupal
==================================

Edismax is available in the search solr api module. When you install and configure acquia\_connector you have the option to enable/disable in the module configuration in edit search index configuration page. If you are seeing performance degradation Acquia recommends you disable this feature.

![Checkbox labeled "Enable eDisMax" under "Acquia Search Solr" is checked, with text "Use Extended DisMax Query Parser" below.](https://acquia.widen.net/content/f67a0ad5-c433-4671-b919-ec9d33c064fd/web/ka06g000001m2PZ00N6g00000VCdgi0EM6g000003Bfok.png)

eDisMax limitations Edismax can be useful but the key to picking the right parser is in knowing its limitations.

Performance
-----------

eDisMax’s ability to search across multiple fields does not always bring advantages. This is especially true when it comes to performance. From a time efficiency point of view, it makes sense that searching query terms across every specified field in the ‘qf’ parameter will be slower than searching just one field. However, eDisMax does give the option of using Lucene syntax, which can help speed things up.

Relevancy
---------

The name eDisMax relates to the parser’s approach to computing a matched documents’ score. When computing the relevancy of a term, it only takes into account the top score fields per document; among all distinctly scored alternatives, the ‘disjunction’, it chooses the ‘maximum’.

We can use eDisMax’s tie breaker parameter to control the percentile weighting of each field when calculating total score per product. Values can be set between ‘0’ and ‘1’, where ‘0’ means choosing the maximum and ‘1’ means doing a sum, (echoing Lucene behavior).

This kind of relevancy approach only relates to the best scored fields in each document. Its final relevancy score won’t be fully representative of how well the complete document is scored. Lucene’s computation arguably makes more accurate relevance assessments by taking into account all scores.

Multiple Field Query Search
---------------------------

Searching over several fields with eDisMax can be approached using a Lucene parser. Instead of the ‘qf’ parameter, we can use boolean operators to specify each field we need to search.  
  
This approach can be tedious when needing to search across many fields.

For example, the query below uses eDisMax as the query parser:

![Search query URL with parameters for product name and category, focusing on the term "Watch."](https://acquia.widen.net/content/f5fe3ee4-35c5-4ebc-9fa7-cc6c6ddba7d9/web/ka06g000001m2PZ00N6g00000VCdgi0EM6g000003Bfop.png)

  
Once the query has been transformed into Lucene objects, we can see that a boolean operation has been applied:

![Code snippet showing a parsed query with search parameters for product names and categories related to watches.](https://acquia.widen.net/content/4e123198-4595-40e7-8f07-6f07640da60a/web/ka06g000001m2PZ00N6g00000VCdgi0EM6g000003Bfou.png)

This query uses Standard Query Parser syntax:

![Search query with parameters for product name or category, specifically for "Watch," displayed in a text box.](https://acquia.widen.net/content/3fbe25e6-8ff4-4c21-b07c-af30f42fb514/web/ka06g000001m2PZ00N6g00000VCdgi0EM6g000003Bfoz.png)

In this case, transformation into Lucene objects is far simpler:

![Text displaying a parsed query for searching product name and category, both labeled "watch."](https://acquia.widen.net/content/b2b4b8f9-d92a-4ef0-92e9-86cc2f5ae7a1/web/ka06g000001m2PZ00N6g00000VCdgi0EM6g000003Bfp4.png)