Install
Works with Drupal: ^10.1 || ^11.0Using Composer to manage Drupal site dependencies
Alternative installation files
Release notes
Search API Solr 4.3.x is a unified release that supports Drupal 9 and 10 in combination with a wide range of Solr versions from 3.6 to 9.x.
The big changes in 4.3.x compared to 4.2.x:
- Solr 9 support
- Usage of StandardTokenizer and storeOffsetsWithPositions for better search results and highlighting
- Field Formatter Plugin to highlight search results in field and entity rendering
- Solarium 6.3
- Removal of all deprecated hooks, use Events instead, including Solarium Events
How to upgrade from 4.2.x or earlier
In order to support advanced highlighting and other features, the Solr schema provided by Search API Solr 4.3 got some fundamental changes, for example the usage of StandardTokenizer and storeOffsetsWithPositions.
When upgrading the module to 4.3.x from 4.2.x and earlier you still can read an existing Solr index and perform searches.
But if you write (index) data you'll run into errors like cannot change field "xyz" from index options=DOCS_AND_FREQS_AND_POSITIONS to inconsistent index options=DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS.
There're different ways to deal with the required update. But all require Solr knowledge.
But the safest way is to delete the existing core (or collection in case of Solr Cloud) and to create a new core (or collection) using a new Solr config-set generated by Search API Solr 4.3.x and to re-index your data afterwards.
If you want to avoid downtime of your service, you can also create a new core (or collection), clone and adjust the Search API server and index configs and index all your data twice, while users can still search via the old core (or collection). Afterwards you can use Solr's rename or alias capabilities to switch both cores (or collections) and delete the cloned Search API server and index configs.
Changelog
Changes since 4.3.1:
- #3415472: solarium version check doesn't print version in status report by mkalkbrenner
- #3365751: Document how to set up Solr Cloud on a server, step-by-step by mkalkbrenner
- #3413721: Hardcode lucene version 9.8.0 for Solr 9.4.0 if service provider blocks the APIs by mkalkbrenner
- #3409900: cron should not wait for suggester builds to succeed by mkalkbrenner
- #3406250: escapePhrase(): Argument #1 ($input) must be of type string, array given by mkalkbrenner
- #3408777: 4.3.1 on Drupal 9.5.11 installs solarium 6.x-dev-b785b8b by mkalkbrenner, hanoii
- #3406703: fuzzy mode fix sometimes leads to exceptions in older Solr versions by mkalkbrenner
- #3406269: Fix phpcs, phpstan, stylelint findings by mkalkbrenner
- #3406225: Atomic Updates are broken with Solr 9 by mkalkbrenner
- #3328996: Fix the issues reported by phpcs by mkalkbrenner
- #3404623: fuzzy terms query parser leads to strange results on some fulltext fields. by mkalkbrenner
- #3402991: Allow users to check for query and Index analysis of solr field by joshi.rohit100, mkalkbrenner
- #3392715: Rework README.md using markdown syntax by ressa, mkalkbrenner
- #3402831: [sorting] Always set the multivalue's first value as long as it's not NULL by codebymikey, mkalkbrenner
Changes since 4.3.0:
- #3400577: Too many fields returned for views using entity rendering by mkalkbrenner
- #3394999: PHP 8.2, deprecated dynamic property disabledOnServer by dam-vessey, mkalkbrenner
- #3396442: solrconfig_extra.xml Causes Solr write.lock issues in suggesters by opensolr, mkalkbrenner
- #3400167: Filter value formatting might fail on custom Search API field types by mkalkbrenner
- #3393548: Trying to access array offset on value of type null by mjmorley, mkalkbrenner
- #3392628: Don't build suggesters if disabled by mkalkbrenner
- #3397901: Should not try to connect to disabled server/indexes by mkalkbrenner, sime
- #3396152: PostCreateIndexDocumentsEvent misses the index by mkalkbrenner, neclimdul
- #3396343: Avoid fuzzy searches on "fulltext string" fields by mkalkbrenner
- #3394168: Fix variable substitution in Drush log messages by drunken monkey, ressa, mkalkbrenner
- #3389956: Lack of precision in spatial search because Solarium casting distance to int by Edward Wu, mkalkbrenner
Changes since 4.3.0-alpha1:
- #3320713: Array to string conversion on $doc_fields['hash'] by mjmorley, rastepanyan, mkalkbrenner
- #3380217: trim(): Passing null to parameter #1 ($string) of type string is deprecated by sreenivasparuchuri, mkalkbrenner
Changes since 4.2.12:
- #3380477: Remove deprecated code for 4.3.0 by mkalkbrenner
- #3373051: Optional schema for Korean Hangul/Hangeul by jonloh, mkalkbrenner
- #3378180: Highlight formatters should use url.query_args cache context by mkalkbrenner
- #3372198: Increase indexing performance by offloading suggester builds to cron by mkalkbrenner
- #3374352: "stricter" field highlighting formatter breaks cache contexts by mkalkbrenner
- #3372189: Distinguish between Solr and Lucene version by mkalkbrenner
- #3372331: Be prepared for unified highlighter by mkalkbrenner
- #3371969: FlattenGraphFilter is missing for some field types by mkalkbrenner
- #3370264: Replace WhitespaceTokenizerFactory with the StandardTokenizerFactory by mkalkbrenner
- #3370900: Detect version from composer by mkalkbrenner
- #3370571: Update README wording for SEARCH_API_SERVER_ID by ressa, mkalkbrenner
- #3280286: Solr 9: The Data Import Handler (DIH) is an independent project now by mkalkbrenner
- #3280290: Solr 9: Add new config-set templates for Solr 9 by mkalkbrenner
- #3280289: Solr 9: The "dist" folder in the release is gone by mkalkbrenner
- #3280287: Solr 9: SolrCache implementations (LRUCache, LFUCache, FastLRUCache) have been removed. by mkalkbrenner