You are here

Dummy_Solr.php in Apache Solr Search 8

Same filename and directory in other branches
  1. 6.3 tests/Dummy_Solr.php
  2. 7 tests/Dummy_Solr.php

Dummy object to simulate a Solr Service

File

tests/Dummy_Solr.php
View source
<?php

/**
 * @file
 *   Dummy object to simulate a Solr Service
 *
 */
class DummySolr implements DrupalApacheSolrServiceInterface {
  function getId() {
    return __CLASS__;
  }
  function getFields($num_terms = 0) {
    return (object) array(
      'is_uid' => (object) array(
        'type' => 'long',
        'schema' => 'I-S----OF-----',
      ),
      'content' => (object) array(
        'type' => 'text',
        'schema' => 'ITS-V---------',
      ),
      'im_3_field_tags' => (object) array(
        'type' => 'long',
        'schema' => 'I-SM---OF-----',
        'dynamicBase' => 'im_*',
      ),
      'entity_type' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'ds_last_comment_or_change' => (object) array(
        'type' => 'tdate',
        'schema' => 'ITS----OF-----',
      ),
      'nodeaccess_ari4jj_node_access_example_view' => (object) array(
        'type' => 'integer',
        'schema' => 'I--M---OF-----',
        'dynamicBase' => 'nodeaccess*',
      ),
      'entity_id' => (object) array(
        'type' => 'tlong',
        'schema' => 'ITS----OF-----',
      ),
      'ds_changed' => (object) array(
        'type' => 'tdate',
        'schema' => 'ITS----OF-----',
      ),
      'id' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'timestamp' => (object) array(
        'type' => 'date',
        'schema' => 'I-S----OF----l',
      ),
      'label' => (object) array(
        'type' => 'text',
        'schema' => 'ITS-V--O------',
      ),
      'nodeaccess_ari4jj_node_access_example_edit' => (object) array(
        'type' => 'integer',
        'schema' => 'I--M---OF-----',
        'dynamicBase' => 'nodeaccess*',
      ),
      'ds_created' => (object) array(
        'type' => 'tdate',
        'schema' => 'ITS----OF-----',
      ),
      'ss_name' => (object) array(
        'type' => 'text',
        'schema' => 'ITS-V---------',
      ),
      'path' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'taxonomy_names' => (object) array(
        'type' => 'text',
        'schema' => 'IT-MV--O------',
      ),
      'bundle' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'tid' => (object) array(
        'type' => 'long',
        'schema' => 'I-SM---OF-----',
      ),
      'is_tnid' => (object) array(
        'type' => 'long',
        'schema' => 'I-S----OF-----',
      ),
      'nodeaccess_ari4jj_node_access_example_author' => (object) array(
        'type' => 'integer',
        'schema' => 'I--M---OF-----',
        'dynamicBase' => 'nodeaccess*',
      ),
      'tm_vid_1_names' => (object) array(
        'type' => 'text',
        'schema' => 'ITSMV---------',
        'dynamicBase' => 'tm_*',
      ),
      'spell' => (object) array(
        'type' => 'textSpell',
        'schema' => 'ITSM----------',
      ),
      'site' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'is_comment_count' => (object) array(
        'type' => 'tint',
        'schema' => 'ITS----OF-----',
      ),
      'bundle_name' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'hash' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'bs_status' => (object) array(
        'type' => 'boolean',
        'schema' => 'I-S----OF----l',
      ),
      'entity_id' => (object) array(
        'type' => 'long',
        'schema' => 'I-S----OF-----',
      ),
      'url' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'nodeaccess_all' => (object) array(
        'type' => 'integer',
        'schema' => 'I--M---OF-----',
        'dynamicBase' => 'nodeaccess*',
      ),
      'sort_name' => (object) array(
        'type' => 'sortString',
        'schema' => 'IT-----O-----l',
      ),
      'tags_a' => (object) array(
        'type' => 'text',
        'schema' => 'IT-----O------',
        'dynamicBase' => 'tags_*',
      ),
      'bs_sticky' => (object) array(
        'type' => 'boolean',
        'schema' => 'I-S----OF----l',
      ),
      'bs_promote' => (object) array(
        'type' => 'boolean',
        'schema' => 'I-S----OF----l',
      ),
      'teaser' => (object) array(
        'type' => 'text',
        'schema' => '-TS-----------',
      ),
      'im_vid_1' => (object) array(
        'type' => 'long',
        'schema' => 'I-SM---OF-----',
        'dynamicBase' => 'im_*',
      ),
      'bs_translate' => (object) array(
        'type' => 'boolean',
        'schema' => 'I-S----OF----l',
      ),
      'sort_label' => (object) array(
        'type' => 'sortString',
        'schema' => 'IT-----O-----l',
      ),
      'ss_language' => (object) array(
        'type' => 'string',
        'schema' => 'I-S----OF----l',
      ),
      'sm_vid_Tags' => (object) array(
        'type' => 'string',
        'schema' => 'I-SM---OF----l',
        'dynamicBase' => 'sm_*',
      ),
    );
  }
  protected $last_search = array();
  public function search($query = '', array $params = array(), $method = 'GET') {
    $this->last_search = array(
      'query' => $query,
      'params' => $params,
      'method' => $method,
    );
    $response = new stdClass();
    $response->response = new stdClass();
    $response->response->numFound = 0;
    $response->response->docs = array();
    return $response;
  }
  public function getLastSearch() {
    return $this->last_search;
  }

  /**
   * Call the /admin/ping servlet, to test the connection to the server.
   *
   * @param $timeout
   *   maximum time to wait for ping in seconds, -1 for unlimited (default 2).
   * @return
   *   (float) seconds taken to ping the server, FALSE if timeout occurs.
   */
  function ping($timeout = 2) {
  }

  /**
   * Get information about the Solr Core.
   *
   * @return
   *   (string) system info encoded in json
   */
  function getSystemInfo() {
  }

  /**
   * Get meta-data about the index.
   */
  function getLuke($num_terms = 0) {
  }

  /**
   * Get information about the Solr Core.
   *
   * Returns a Simple XMl document
   */
  function getStats() {
  }

  /**
   * Get summary information about the Solr Core.
   */
  function getStatsSummary() {
  }

  /**
   * Clear cached Solr data.
   */
  function clearCache() {
  }

  /**
   * Constructor
   *
   * @param $url
   *   The URL to the Solr server, possibly including a core name.  E.g. http://localhost:8983/solr/
   *   or https://search.example.com/solr/core99/
   * @param $env_id
   *   The machine name of a corresponding saved configuration used for loading
   *   data like which facets are enabled.
   */
  function __construct($url, $env_id = NULL) {
  }

  /**
   * Make a request to a servlet (a path) that's not a standard path.
   *
   * @param string $servlet
   *   A path to be added to the base Solr path. e.g. 'extract/tika'
   *
   * @param array $params
   *   Any request parameters when constructing the URL.
   *
   * @param array $options
   *  @see drupal_http_request() $options.
   *
   * @return
   *  response object
   *
   * @thows Exception
   */
  function makeServletRequest($servlet, $params = array(), $options = array()) {
  }

  /**
   * Get the Solr url
   *
   * @return string
   */
  function getUrl() {
  }

  /**
   * Set the Solr url.
   *
   * @param $url
   *
   * @return $this
   */
  function setUrl($url) {
  }

  /**
   * Raw update Method. Takes a raw post body and sends it to the update service. Post body
   * should be a complete and well formed xml document.
   *
   * @param string $rawPost
   * @param float $timeout Maximum expected duration (in seconds)
   *
   * @return response object
   *
   * @throws Exception If an error occurs during the service call
   */
  function update($rawPost, $timeout = FALSE) {
  }

  /**
   * Add an array of Solr Documents to the index all at once
   *
   * @param array $documents Should be an array of ApacheSolrDocument instances
   * @param boolean $allowDups
   * @param boolean $overwritePending
   * @param boolean $overwriteCommitted
   *
   * @return response objecte
   *
   * @throws Exception If an error occurs during the service call
   */
  function addDocuments($documents, $overwrite = NULL, $commitWithin = NULL) {
  }

  /**
   * Send a commit command.  Will be synchronous unless both wait parameters are set to false.
   *
   * @param boolean $optimize Defaults to true
   * @param boolean $waitFlush Defaults to true
   * @param boolean $waitSearcher Defaults to true
   * @param float $timeout Maximum expected duration (in seconds) of the commit operation on the server (otherwise, will throw a communication exception). Defaults to 1 hour
   * @param boolean $softCommit optimize by using a softCommit
   *
   * @return response object
   *
   * @throws Exception If an error occurs during the service call
   */
  function commit($optimize = TRUE, $waitFlush = TRUE, $waitSearcher = TRUE, $timeout = 3600, $softCommit = FALSE) {
  }

  /**
   * Create a delete document based on document ID
   *
   * @param string $id Expected to be utf-8 encoded
   * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
   *
   * @return response object
   *
   * @throws Exception If an error occurs during the service call
   */
  function deleteById($id, $timeout = 3600) {
  }

  /**
   * Create and post a delete document based on multiple document IDs.
   *
   * @param array $ids Expected to be utf-8 encoded strings
   * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
   *
   * @return response object
   *
   * @throws Exception If an error occurs during the service call
   */
  function deleteByMultipleIds($ids, $timeout = 3600) {
  }

  /**
   * Create a delete document based on a query and submit it
   *
   * @param string $rawQuery Expected to be utf-8 encoded
   * @param float $timeout Maximum expected duration of the delete operation on the server (otherwise, will throw a communication exception)
   * @return stdClass response object
   *
   * @throws Exception If an error occurs during the service call
   */
  function deleteByQuery($rawQuery, $timeout = 3600) {
  }

  /**
   * Send an optimize command.  Will be synchronous unless both wait parameters are set
   * to false.
   *
   * @param boolean $waitFlush
   * @param boolean $waitSearcher
   * @param float $timeout Maximum expected duration of the commit operation on the server (otherwise, will throw a communication exception)
   * @param boolean $softCommit optimize by using a softCommit
   *
   * @return response object
   *
   * @throws Exception If an error occurs during the service call
   */
  function optimize($waitFlush = TRUE, $waitSearcher = TRUE, $timeout = 3600, $softCommit = FALSE) {
  }

  /**
   * Get the current solr version. This could be 1, 3 or 4
   *
   * @return int
   *   1, 3 or 4. Does not give a more details version, for that you need
   *   to get the system info.
   */
  function getSolrVersion() {
  }

  /**
   * Get query name.
   */
  function getName() {
  }

  /**
   * Get query searcher name (for facetapi, views, pages, etc).
   */
  function getSearcher() {
  }

  /**
   * Get context values.
   */
  function getContext() {
  }

  /**
   * Set context value.
   */
  function addContext(array $context) {
  }

}

Classes

Namesort descending Description
DummySolr @file Dummy object to simulate a Solr Service