Information for: DEVELOPERS   PARTNERS

Debugging Acquia Search

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

  1. Try connecting 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.

  2. Examine the version of the Apache Solr Search Integration module.

  3. 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.

  4. 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 8, 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/facets to filter results as expected. The open issue on Drupal.org, AJAX facet block seems to lose views context, will be updated as the community identifies fixes and workarounds.

Drush commands with Apache Solr Search Integration

The Apache Solr Search Integration module includes a group of Drush commands you can use to work with your search environments. The following list includes several useful commands:

Command Description
solr-delete-index Deletes the content from the index (can accept content types as parameters)
solr-get-env-id Retrieve the default Apache Solr environment ID, or all environment IDs and names
solr-get-env-name Retrieve the Apache Solr environment name
solr-get-env-url Retrieve the Apache Solr environment URL
solr-index Re-indexes the content marked for re-indexing
solr-mark-all Marks content for re-indexing (can accept content types as parameters)
solr-search Search the website for keywords using Apache Solr
solr-set-env-url Retrieve the URL for an Apache Solr environment
solr-variable-delete (solr-vdel) Delete an Apache Solr environment variable
solr-variable-get (solr-vget) Retrieve a list of Apache Solr environment variable names and values
solr-variable-set (solr-vset) Retrieve an Apache Solr environment variable
solr-set-derived-key Sets an environment to be active for Acquia Search using a specific derived key—you must use your Acquia Identifier and Network Key to set the number (you can find those numbers on the Acquia Network Subscription page, under Acquia Network keys)

For more information about the preceding commands, run drush help from the command line of your docroot where Acquia Search is installed.