You are here

public function Solr_Base_Query::make_filter in Apache Solr Search 5.2

Same name and namespace in other branches
  1. 6 Solr_Base_Query.php \Solr_Base_Query::make_filter()
  2. 6.2 Solr_Base_Query.php \Solr_Base_Query::make_filter()

Takes an array $field and combines the #name and #value in a way suitable for use in a Solr query.

2 calls to Solr_Base_Query::make_filter()
Solr_Base_Query::get_breadcrumb in ./Solr_Base_Query.php
Build additional breadcrumb elements relative to $base.
Solr_Base_Query::rebuild_fq in ./Solr_Base_Query.php
Builds a set of filter queries from $this->fields and all subqueries.

File

./Solr_Base_Query.php, line 55

Class

Solr_Base_Query

Code

public function make_filter(array $filter) {

  // If the field value has spaces, or : in it, wrap it in double quotes.
  // unless it is a range query.
  if (preg_match('/[ :]/', $filter['#value']) && !isset($filter['#start']) && !preg_match('/[\\[\\{]\\S+ TO \\S+[\\]\\}]/', $filter['#value'])) {
    $filter['#value'] = '"' . $filter['#value'] . '"';
  }
  $prefix = empty($filter['#exclude']) ? '' : '-';
  return $prefix . $filter['#name'] . ':' . $filter['#value'];
}