Debugging Acquia Search with Apache Solr Search module


Acquia Search may experience downtime when servers are rebooted for security reasons.

Use the following steps when you troubleshoot issues with Acquia Search:

  • Attempt to connect from your local install using the subscription’s keys. You must disable and enable all the search modules to regenerate the salt variables. The step can determine if the issue is with the website or the search subscription.

  • Examine the version of the Apache Solr Search module.

  • If indexing appears to run fine but the results are sparse, examine /admin/settings/apachesolr/query-fields to ensure no major fields are configured to Omit. Also, scroll to the bottom of /admin/settings/apachesolr/content-bias and check which content types are excluded from indexing.

  • Find the last node indexed by completing the following steps:

    1. Run the following command:

      drush -vd search-index
    2. At some point, you’ll start seeing notices about what node IDs failed to index. Run the following command and note the limit:

      drush vget apachesolr_cron_limit
    3. Divide the number returned by the previous command by 2, and then use the resulting number with the following command:

      drush vset apachesolr_cron_limit [value]

      For example, if you have 100 results, run the following command:

      drush vset apachesolr_cron_limit 50
    4. Repeat the process, halving the limit each time until you reach 1 as the returned number.

    When you reach 1, you will know which node is causing problems.

    Another technique to find the last indexed node is to use the following command:

    drush vget apachesolr_index_last

    Use the following command for Drupal 7:

    drush php-eval 'module_load_include("inc", "apachesolr", "apachesolr.index"); $rows = apachesolr_index_get_entities_to_index(apachesolr_default_environment(), "node", 1); foreach ($rows as $row) { print_r($row); }'

    The reported node is probably where the indexing problem resides.

Exposed search filters, facets, blocks, and AJAX

In Drupal 9 or later, views exposed filters, such as search results and blocks with facets, must not have caching enabled alongside AJAX, as the views AJAX request does not pass along the ?f[0]= parameters used by exposed filters or facets to filter results as expected. The open issue on, AJAX facet block seems to lose views context, will be updated as the community identifies fixes and workarounds.