This page describes the known issues with Acquia Search.
General issues with Acquia Search
The following issues affect all versions of Acquia Search:
- Duplicate documents issue with Solr 7 to Solr 8 upgrade
- Solr search has difficulty handling large attachments
- Acquia Search can’t be included in a dedicated virtual private cloud
- Internal Solr error with Eastern European languages
Replication issue with the FreeTextLookupFactory class
Duplicate documents issue with Solr 7 to Solr 8 upgrade
If your deployed configsets contain the field, <field name="_root_" type="string" indexed="true" stored="false"/>
, after you upgrade from Solr 7 to Solr 8, a duplicate document issue occurs while indexing. When modifying Drupal content, the system creates a new Solr document and does not update the existing document. For more information about this known issue, see SOLR-15540.
To resolve this issue, Acquia:
- Removed the
field name="_root_
from:- Default configsets available in the Cloud Platform user interface
- All the deployed (“live”) configsets
- Removed duplicate documents from the respective indexes.
For more information, see Acquia Search - November 29, 2023.
Workaround:
If you implemented custom configsets, you must remove the field, _root_
as follows:
- Remove the field from configsets by deleting the
<field name="_root_" type="string" indexed="true" stored="false"/>
line from existing configsets. - Clear the duplicate documents from Drupal and reindex to correct index pollution.
Note
The _root_
field is required for nested Solr documents. If the use case requires nested Solr documents, you can re-add this field in a custom configset.
Solr search has difficulty handling large attachments
For more information, see Issues with large attachments and Solr search in the Acquia Support Knowledge Base.
Acquia Search can’t be included in a dedicated virtual private cloud
Acquia Search is hosted within Acquia’s shared virtual private cloud (VPC). Although you can access Acquia Search from your Shield applications, the Acquia Search servers are located outside of your Shield dedicated section. Due to the Acquia Search servers’ location, Shield does not protect your search index. For more information about how Acquia uses VPCs, see Virtual Private Cloud.
Internal Solr error with Eastern European languages
Advanced search functionalities, such as Acquia internal backups and select all queries, may fail if the dynamic field sort_X3b_*
has class type defined as solr.ICUCollationField
, and contains unicode characters from Eastern European languages. This will not affect regular indexing and search operations. For more information, see the Solr ticket.
Replication issue with the FreeTextLookupFactory class
The FreeTextLookupFactory suggester factory class has a known issue wherein the suggester dictionary is not built in all replicas. Therefore, Acquia recommends you to not use the FreeTextLookUpFactory class.
Known issues for Acquia Search on Drupal 7
- The Workbench Moderation module can cause search integration problems
- Search API has memory errors when indexing
- Search API provides fewer configuration options
The Workbench Moderation module can cause search integration problems
For more information about the Workbench Moderation module, see its project page on Drupal.org.
Search API has memory errors when indexing
For more information about this issue, see Better memory usage on indexing on Drupal.org.
Search API provides fewer configuration options
The Search API module provides fewer configuration options than ApacheSolr integration in Drupal 7.
Known issues for Acquia Search on the current Drupal version
- The Search API module can’t display result snippets
- Non-SQL query plugins for Views cause PHP errors
- Views exposed filters must not be cached
- Content types are unintentionally indexed
- Development environments can easily write to production indexes
- Suggester configuration causes the "Lock held by this virtual machine" error
The Search API module can’t display result snippets
The Search API module can’t display result snippets—the full node output displays as the search result.
Workaround: Create a Search result view mode to output something smaller than the full node. To add the workaround, complete the following steps:
- Go to Structure > Content types > Article > Manage display.
- In the Custom display settings section, select the Search result highlighting input checkbox.
- Click Save.
- Go to Structure > Content types > Article > Manage display > Search result highlighting input. The following settings control each search result’s output.
- To display result snippets, edit the appropriate field. For example, to make the Body field display result snippets, complete the following steps:
- In Format, click Trimmed.
- Click the gear icon. The webpage displays the Trimmed limit field.
- In the Trimmed limit field, enter
200
to trim the body field to 200 characters. - Click Update.
You have now configured the Body field to display trimmed output as the search result.
Non-SQL query plugins for Views cause PHP errors
For more information about this issue, see Views problems with non-SQL query plugins on Drupal.org.
Views exposed filters must not be cached
Views exposed filters, such as search results and blocks with facets, must not have caching enabled alongside AJAX. For more information, see Ajax facet block seems to lose views context on Drupal.org.
Content types are unintentionally indexed
Acquia Search indexes content types, when that is not the intended behavior.
Workaround: Add a content type filter to an Acquia Search view.
Upgrading the search_api_solr module from 4.2.x to 4.3.x causes reindexing to fail
Upgrading the search_api_solr module from version 4.2.x to 4.3.x results in reindexing failure.
To successfully perform the upgrade:
- Upgrade the module to version 4.3.x.
- Delete the index from the Cloud UI.
- Create a new index using the Solr 8 configset.
Development environments can easily write to production indexes
By default, Acquia Search stores configuration in the database. When the production database is pulled into a development environment such as Acquia Cloud IDE or local environment, the Solr core/server, site ID (site_hash), and other details get copied over. As a result, the development and the production environments end up sharing the same Solr index. This causes numerous issues including duplicate results, results from the wrong site, and deletion of all content in the production environment’s Solr index.
Workaround: Set the index status to Read only on all development environments.
Option 1 (works for local development environments and Cloud IDEs): In
sites/default/settings.local.php
, add the following code:// Check if Acquia environment variable is not set or equals 'ide'. if (!isset($_ENV['AH_SITE_ENVIRONMENT']) || $_ENV['AH_SITE_ENVIRONMENT'] === 'ide') { // If there's no 'AH_SITE_ENVIRONMENT' or we are on an Acquia Cloud IDE, // set Acquia Search to read-only mode. $settings['acquia_search']['read_only'] = TRUE; }
- Option 2: Add additional custom code by following the recommendations in Read-only Solr search index.
Suggester configuration causes the "Lock held by this virtual machine" error
The "Lock held by this virtual machine" error occurs in Solr when the following actions take place simultaneously:
- Indexing
- Building of a suggester for the index
<str name="indexPath">./SUGGESTERS_NAME</str>
en
suggester:<str name="indexPath">./en</str>
and <str name="indexPath">./und</str>
. <lst name="suggester">
<str name="name">en</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">twm_suggest</str>
<str name="suggestAnalyzerFieldType">text_en</str>
<str name="contextField">sm_context_tags</str>
<str name="buildOnCommit">true</str>
<str name="buildOnStartup">false</str>
<str name="indexPath">./en</str>
</lst>