| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544 |
- <?php
- /**
- * The interface for all 'query' objects.
- */
- interface DrupalSolrQueryInterface {
- /**
- * 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);
- /**
- * Returns all filters matching $name, if set; otherwise, returns all filters.
- *
- * @param string $name
- * The facet field name to match. If NULL, all filters will be returned.
- *
- * @return array
- * All matching filters.
- */
- function getFilters($name = NULL);
- /**
- * Tests whether a filter is already present in the query.
- *
- * @param string $name
- * The facet field name to check.
- * @param string $value
- * The facet value to check.
- * @param boolean $exclude
- * Optional, defaults to FALSE, must match the filter.
- *
- * @return boolean
- * TRUE or FALSE.
- */
- function hasFilter($name, $value, $exclude = FALSE);
- /**
- * Adds a filter to the query.
- *
- * @param string $name
- * The facet field name.
- * @param string $value
- * The facet field value.
- * @param boolean $exclude
- * Set to TRUE to filter out documents matching $value.
- * @param string $local
- * Solr LocalParams.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function addFilter($name, $value, $exclude = FALSE, $local = '');
- /**
- * Removes a filter from the query.
- *
- * @param string $name
- * The name of the facet field to remove.
- * @param string $value
- * The value of the facet field to remove. If NULL, all filters matching
- * $name are removed.
- * @param boolean $exclude
- * If $value is not NULL, only filters matching both $value and $exclude are
- * removed. Ignored if $value is NULL.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function removeFilter($name, $value = NULL, $exclude = FALSE);
- /**
- * Returns all subqueries to the query.
- *
- * @return array
- * All subqueries to the query.
- */
- function getFilterSubQueries();
- /**
- * Adds a subquery to the query.
- *
- * @param SolrFilterSubQuery $query
- * The query to add to the orginal query - may have keywords or filters.
- * @param string $fq_operator
- * The operator to use within the filter part of the subquery
- * @param string $q_operator
- * The operator to use in joining the subquery to the main keywords. Note:
- * this is unlikely to work with the Dismax handler when the main query is
- * only keywords.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function addFilterSubQuery(SolrFilterSubQuery $query);
- /**
- * Removes a specific subquery.
- *
- * @param DrupalSolrQueryInterface $query
- * The query to remove.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function removeFilterSubQuery(SolrFilterSubQuery $query);
- /**
- * Removes all subqueries.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function removeFilterSubQueries();
- /**
- * Transforms a single filter in a form suitable for use in a Solr query.
- *
- * @param array $filter
- * A filter as an array with the keys '#name', for the facet field name,
- * '#value', for the facet field value, '#local', for Solr LocalParams, and
- '#exclude' set to TRUE if it is an exclusion filter.
- *
- * @return string
- * A Solr fq parameter value.
- */
- function makeFilterQuery(array $filter);
- /**
- * Gets the value of a parameter.
- *
- * @param string $name
- * The parameter name.
- *
- * @return
- * The value of the parameter.
- */
- function getParam($name);
- /**
- * Gets all parameters in normalized form.
- *
- * @return array
- * All parameters as key-value pairs.
- */
- function getParams();
- /**
- * Gets parameters in a form suitable for use in a Solr query.
- *
- * @return array
- * All parameters as key-value pairs, where values have been transformed
- * into Solr parameter values.
- */
- function getSolrParams();
- /**
- * Adds a param to be sent when running the Solr search.
- *
- * If the param is single-valued, this will replace rather than add the value.
- *
- * @param string $name
- * A Solr param name, e.g. 'q' or 'fl'.
- * @param $value
- * A Solr param value: an array of values, or a string for a single value.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function addParam($name, $value);
- /**
- * Adds multiple params to be sent when running the Solr search.
- *
- * If the param is single-valued, this will replace rather than add the value.
- *
- * @param $params
- * An array where the keys are param names, and the values may be strings or
- * arrays of strings.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function addParams(array $params);
- /**
- * Removes all values for one Solr param.
- *
- * @param string $name
- * A Solr param name, e.g. 'q' or 'fl'.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function removeParam($name);
- /**
- * Replaces a param to be sent when running the Solr search.
- *
- * Basically a shortcut for removeParam() plus addParam().
- *
- * @param string $name
- * A Solr param name, e.g. 'q' or 'fl'.
- * @param $value
- * A Solr param value: an array of values, or a string for a single value.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function replaceParam($name, $value);
- /**
- * Handles aliases for field to make nicer URLs.
- *
- * @param $field_map
- * An array keyed with real Solr index field names with the alias as value.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function addFieldAliases($field_map);
- function getFieldAliases();
- function clearFieldAliases();
- function getAvailableSorts();
- /**
- * Adds an available sort.
- *
- * @param string $name
- * The name of the field in the Solr index to sort on.
- * @param array $sort
- * An array with the keys 'title', for the human name of the sort, and
- * 'default', for the default sort direction ('asc' or 'desc').
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function setAvailableSort($name, $sort);
- /**
- * Removes an available sort.
- *
- * @param string $name
- * The name of the field in the Solr index to sort on.
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function removeAvailableSort($name);
- /**
- * Gets the current sort.
- *
- * @return array
- * The current sort as an array with the keys '#name', for the name of
- * the field, and '#direction', for the sort direction ('asc' or 'desc').
- */
- function getSolrsort();
- /**
- * Sets the sort.
- *
- * @param string $field
- * The name of the field in the Solr index to sort on.
- * @param string $direction
- * 'asc' or 'desc'
- *
- * @return DrupalSolrQueryInterface
- * The called object.
- */
- function setSolrsort($name, $direction);
- /**
- * Returns an array representing the URL query string for the current sort.
- *
- * @return array
- * The URL query string for the current sort.
- */
- function getSolrsortUrlQuery();
- /**
- * Returns the search path (including the search keywords).
- *
- * @param string $new_keywords
- * Optional. When set, this string overrides the query's current keywords.
- *
- * @return string
- * The search path.
- */
- function getPath($new_keywords = NULL);
- /**
- * Sends the search request to Solr, unless $query->abort_search is TRUE.
- *
- * @param string $keys
- * The search keys.
- *
- * @return
- * A stdClass response object.
- */
- function search($keys = NULL);
- /**
- * Calls a method, without arguments, on the Solr object with which the query
- * object was initialized.
- *
- * @param string $method
- * The method to call on the Solr object.
- *
- * @return
- * Any method return.
- */
- function solr($method);
- }
- /**
- * The interface for all 'Service' objects.
- */
- interface DrupalApacheSolrServiceInterface {
- /**
- * 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 just the field meta-data about the index.
- */
- function getFields($num_terms = 0);
- /**
- * 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);
- function getId();
- /**
- * 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
- *
- * @return response object
- *
- * @throws Exception If an error occurs during the service call
- */
- function commit($optimize = TRUE, $waitFlush = TRUE, $waitSearcher = TRUE, $timeout = 3600);
- /**
- * 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)
- *
- * @return response object
- *
- * @throws Exception If an error occurs during the service call
- */
- function optimize($waitFlush = TRUE, $waitSearcher = TRUE, $timeout = 3600);
- /**
- * Simple Search interface
- *
- * @param string $query The raw query string
- * @param array $params key / value pairs for other query parameters (see Solr documentation), use arrays for parameter keys used more than once (e.g. facet.field)
- *
- * @return response object
- *
- * @throws Exception If an error occurs during the service call
- */
- function search($query = '', array $params = array(), $method = 'GET');
- /**
- * 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();
- }
|