setField() public method

Set field for fuzzy query.
public setField ( string $fieldName, string $value )
$fieldName string Field name
$value string String to search for
Beispiel #1
0
 /**
  * @group unit
  */
 public function testBadArguments()
 {
     $this->setExpectedException('Elastica\\Exception\\InvalidException');
     $query = new Fuzzy();
     $query->addField('name', array(array('value' => 'Baden')));
     $this->setExpectedException('Elastica\\Exception\\InvalidException');
     $query = new Fuzzy();
     $query->setField('name', array());
     $this->setExpectedException('Elastica\\Exception\\InvalidException');
     $query = new Fuzzy();
     $query->setField('name', 'value');
     $query->setField('name1', 'value1');
 }
 public function testFuzzyWithFacets()
 {
     $index = $this->_createIndex();
     $type = $index->getType('test');
     $doc = new Document(1, array('name' => 'Basel-Stadt'));
     $type->addDocument($doc);
     $doc = new Document(2, array('name' => 'New York'));
     $type->addDocument($doc);
     $doc = new Document(3, array('name' => 'Baden'));
     $type->addDocument($doc);
     $doc = new Document(4, array('name' => 'Baden Baden'));
     $type->addDocument($doc);
     $index->refresh();
     $field = 'name';
     $fuzzyQuery = new Fuzzy();
     $fuzzyQuery->setField($field, 'Baden');
     $facet = new \Elastica\Facet\Terms('test');
     $facet->setField('name');
     $query = new \Elastica\Query($fuzzyQuery);
     $query->addFacet($facet);
     $resultSet = $index->search($query);
     // Assert query worked ok
     $this->assertEquals(2, $resultSet->count());
     // Check Facets
     $this->assertTrue($resultSet->hasFacets());
     $facets = $resultSet->getFacets();
     $this->assertEquals(2, $facets['test']['total']);
 }
Beispiel #3
0
 /**
  * @group unit
  */
 public function testBadArguments()
 {
     $this->setExpectedException('Elastica\\Exception\\InvalidException');
     $query = new Fuzzy();
     $err = array();
     set_error_handler(function () use(&$err) {
         $err[] = func_get_args();
     });
     $query->addField('name', array(array('value' => 'Baden')));
     restore_error_handler();
     $this->assertCount(1, $err);
     $this->assertEquals(E_USER_DEPRECATED, $err[0][0]);
     $this->setExpectedException('Elastica\\Exception\\InvalidException');
     $query = new Fuzzy();
     $query->setField('name', array());
     $this->setExpectedException('Elastica\\Exception\\InvalidException');
     $query = new Fuzzy();
     $query->setField('name', 'value');
     $query->setField('name1', 'value1');
 }
Beispiel #4
0
 /**
  * Perform a basic search (currently fuzzy)
  *
  * @param $term
  * @param null $user
  * @param null $sortColumn
  * @param string $sortDirection
  * @param int $limit
  * @return array
  */
 public function basicSearch($term, $user = null, $sortColumn = null, $sortDirection = 'desc', $limit = 50)
 {
     $query = new Query();
     $query->setFrom(0);
     $query->setSize($limit);
     $fuzzy = new Fuzzy();
     $fuzzy->setField('value', $term);
     $fuzzy->setFieldOption('fuzziness', 2);
     if ($user) {
         $userId = $user->id;
         $boolQuery = new BoolQuery();
         $matchQuery = new Query\Match('user_id', $userId);
         $boolQuery->addMust($matchQuery);
         $boolQuery->addMust($fuzzy);
         $query->setQuery($boolQuery);
     }
     if ($sortColumn) {
         $query->addSort([$sortColumn => ['order' => $sortDirection]]);
     }
     $resultSet = $this->getTypedIndex()->search($query);
     return $this->getModels($resultSet);
 }