SS 4.0 - Upgrade Solr & Solr Index

This commit is contained in:
Brett Tasker 2017-04-26 23:19:25 +12:00
parent 7baf7d5758
commit 4530fb21fe
2 changed files with 22 additions and 7 deletions

View File

@ -1,8 +1,12 @@
<?php
namespace SilverStripe\FullTextSearch\Solr;
use SilverStripe\Control\Director;
use SilverStripe\Core\Object;
use SilverStripe\FullTextSearch\Search\FullTextSearch;
use SilverStripe\FullTextSearch\Solr\Services\Solr4Service;
use SilverStripe\FullTextSearch\Solr\Services\Solr3Service;
class Solr
{
@ -78,13 +82,13 @@ class Solr
if (version_compare($version, '4', '>=')) {
$versionDefaults = array(
'service' => 'Solr4Service',
'service' => Solr4Service::class,
'extraspath' => Director::baseFolder().'/fulltextsearch/conf/solr/4/extras/',
'templatespath' => Director::baseFolder().'/fulltextsearch/conf/solr/4/templates/',
);
} else {
$versionDefaults = array(
'service' => 'Solr3Service',
'service' => Solr3Service::class,
'extraspath' => Director::baseFolder().'/fulltextsearch/conf/solr/3/extras/',
'templatespath' => Director::baseFolder().'/fulltextsearch/conf/solr/3/templates/',
);
@ -136,7 +140,7 @@ class Solr
public static function get_indexes()
{
return FullTextSearch::get_indexes('SolrIndex');
return FullTextSearch::get_indexes(SolrIndex::class);
}
/**
@ -156,4 +160,4 @@ class Solr
$included = true;
}
}
}
}

View File

@ -1,9 +1,20 @@
<?php
namespace SilverStripe\FullTextSearch\Solr;
Solr::include_client_api();
use SilverStripe\Control\Director;
use SilverStripe\FulltextSearch\Search\Indexes\SearchIndex;
use SilverStripe\FullTextSearch\Solr\Services\SolrService;
use SilverStripe\FulltextSearch\Search\Queries\SearchQuery;
use SilverStripe\FullTextSearch\Search\Queries\SearchQuery_Range;
use SilverStripe\FullTextSearch\Search\Variants\SearchVariant;
use SilverStripe\FulltextSearch\Search\SearchIntrospection;
use SilverStripe\ORM\ArrayList;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\FieldType\DBField;
use SilverStripe\ORM\PaginatedList;
use SilverStripe\View\ArrayData;
abstract class SolrIndex extends SearchIndex
{
@ -314,7 +325,7 @@ abstract class SolrIndex extends SearchIndex
public function setFieldBoosting($field, $level)
{
if (!isset($this->fulltextFields[$field])) {
throw new InvalidArgumentException("No fulltext field $field exists on ".$this->getIndexName());
throw new \InvalidArgumentException("No fulltext field $field exists on ".$this->getIndexName());
}
if ($level === null) {
unset($this->boostedFields[$field]);
@ -578,7 +589,7 @@ abstract class SolrIndex extends SearchIndex
foreach ($this->getClasses() as $searchclass => $options) {
if ($searchclass == $class || ($options['include_children'] && is_subclass_of($class, $searchclass))) {
$base = ClassInfo::baseDataClass($searchclass);
$base = DataObject::getSchema()->baseDataClass($searchclass);
$docs[] = $this->_addAs($object, $base, $options);
}
}
@ -743,7 +754,7 @@ abstract class SolrIndex extends SearchIndex
$offset,
$limit,
$params,
Apache_Solr_Service::METHOD_POST
\Apache_Solr_Service::METHOD_POST
);
$results = new ArrayList();