You are here

public function SearchApiSolrBackend::extractContentFromFile in Search API Solr 4.x

Same name and namespace in other branches
  1. 8.3 src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::extractContentFromFile()
  2. 8 src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::extractContentFromFile()
  3. 8.2 src/Plugin/search_api/backend/SearchApiSolrBackend.php \Drupal\search_api_solr\Plugin\search_api\backend\SearchApiSolrBackend::extractContentFromFile()

Throws

\Drupal\Component\Plugin\Exception\PluginException

Overrides SolrBackendInterface::extractContentFromFile

File

src/Plugin/search_api/backend/SearchApiSolrBackend.php, line 4457

Class

SearchApiSolrBackend
Apache Solr backend for search api.

Namespace

Drupal\search_api_solr\Plugin\search_api\backend

Code

public function extractContentFromFile($filepath) {
  $connector = $this
    ->getSolrConnector();
  $solr_version = $connector
    ->getSolrVersion();
  if (version_compare($solr_version, '8.6', '>=') && version_compare($solr_version, '8.6.3', '<')) {
    $this
      ->getLogger()
      ->error('Solr 8.6.0, 8.6.1 and 8.6.2 contain a bug that breaks content extraction form files. Upgrade to 8.6.3 at least.');
    return '';
  }
  $query = $connector
    ->getExtractQuery();
  $query
    ->setExtractOnly(TRUE);
  $query
    ->setFile($filepath);

  // Execute the query.
  $result = $connector
    ->extract($query);
  return $connector
    ->getContentFromExtractResult($result, $filepath);
}