-
-
Notifications
You must be signed in to change notification settings - Fork 453
[V9.1˖] Configuring a Solr driver
Georges.L edited this page Mar 26, 2022
·
4 revisions
6.x
(or greater) to be installed as a composer dependency for the Solr driver.
use Phpfastcache\Drivers\Solr\Driver as SolrDriver;
use Phpfastcache\Drivers\Solr\Config as SolrConfig;
/** @var SolrConfig $solrConfig */
$solrConfig = new SolrConfig();
$solrConfig->setCoreName('phpfastcache'); // Optional: Default value
$solrConfig->setPort(8983); // Optional: Default value
$solrConfig->setHost('127.0.0.1'); // Optional: Default value
$solrConfig->setPath('/'); // Optional: Default value
$solrConfig->setScheme('http'); // Optional: Default value
/**
* Optional:
*
* You can change the mapping schema used by Phpfastcache.
* The keys are the Phpfastcache internal index. All required.
* The values are the name of your Solr schema.
*/
$solrConfig->setMappingSchema([
SolrDriver::SOLR_DEFAULT_ID_FIELD => Driver::SOLR_DEFAULT_ID_FIELD,
SolrDriver::SOLR_DISCRIMINATOR_FIELD => Driver::SOLR_DISCRIMINATOR_FIELD . '_s',
ExtendedCacheItemPoolInterface::DRIVER_KEY_WRAPPER_INDEX => ExtendedCacheItemPoolInterface::DRIVER_KEY_WRAPPER_INDEX . '_s',
ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX => ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX . '_s',
ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX => ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX . '_s',
ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX => ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX . '_s',
ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX => ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX . '_s',
TaggableCacheItemPoolInterface::DRIVER_TAGS_WRAPPER_INDEX => TaggableCacheItemPoolInterface::DRIVER_TAGS_WRAPPER_INDEX . '_ss',
]);
/**
* Optional:
*
* You can change the PSR-14 event dispatcher service used (and required) by solarium, by your own one.
*/
// $solrConfig->setEventDispatcher($yourEventDispatcher);
$cacheInstance = CacheManager::getInstance('Solr', $solrConfig);
However keep in minds that Phpfastcache expects the following fields to be type-configured:
SolrDriver::SOLR_DEFAULT_ID_FIELD => Expect type "string" field
SolrDriver::SOLR_DISCRIMINATOR_FIELD => Expect type "string" field
ExtendedCacheItemPoolInterface::DRIVER_KEY_WRAPPER_INDEX => Expect type "string" field
ExtendedCacheItemPoolInterface::DRIVER_DATA_WRAPPER_INDEX => Expect type "string" field
ExtendedCacheItemPoolInterface::DRIVER_EDATE_WRAPPER_INDEX => Expect type "string" field
ExtendedCacheItemPoolInterface::DRIVER_MDATE_WRAPPER_INDEX => Expect type "string" field
ExtendedCacheItemPoolInterface::DRIVER_CDATE_WRAPPER_INDEX => Expect type "string" field
TaggableCacheItemPoolInterface::DRIVER_TAGS_WRAPPER_INDEX => Expect type "strings" field
Please note the difference above between "string" and "strings" (array of strings).
However if you keep the default Solr dynamic fields, Phpfastcache will use them by default.
If you found a bug please feel free to open a new issue 😃
❓ Finally, if you need help, always check out the inevitable README.md