/** * Tests span near query for expected search result. */ public function testSpanNearQueryWhenSlopIsLarge() { $repo = $this->getManager()->getRepository('AcmeTestBundle:Product'); $spanNear = new SpanNearQuery(['in_order' => true]); $spanNear->setSlop(40); $spanNear->addQuery(new SpanTermQuery('description', 'one'))->addQuery(new SpanTermQuery('description', 'two'))->addQuery(new SpanTermQuery('description', 'six')); $search = $repo->createSearch()->addQuery($spanNear); $results = $repo->execute($search, Repository::RESULTS_ARRAY); $this->assertEquals(1, count($results)); }
/** * Tests toArray method. */ public function testSpanMultiTermQueryToArray() { /** @var SpanQueryInterface $mock */ $mock = $this->mock; $query = new SpanNearQuery(['name']); $query->setSlop(5); $query->addQuery($mock); $result = ['clauses' => [0 => ['span_or' => ['key' => 'value']]], 'slop' => 5, 0 => 'name']; $this->assertEquals($result, $query->toArray()); }
/** * Test Span not query. */ public function testSpanNotTestSimpleSpanQueries() { $repo = $this->getManager()->getRepository('AcmeTestBundle:Product'); $spanNear = new SpanNearQuery(); $spanNear->addQuery(new SpanTermQuery('description', 'consectetur'))->setSlop(1); $spanNot = new SpanNotQuery(new SpanTermQuery('description', 'foo'), $spanNear); $search = $repo->createSearch()->addQuery($spanNot); $results = $repo->execute($search, Repository::RESULTS_ARRAY); $this->assertEquals(1, count($results)); }
/** * Test Span or query with different span queries. */ public function testSpanOrQuery() { $repo = $this->getManager()->getRepository('AcmeTestBundle:Product'); $spanNear = new SpanNearQuery(['in_order' => true]); $spanNear->setSlop(1); $spanNear->addQuery(new SpanTermQuery('description', 'ipsum'))->addQuery(new SpanTermQuery('description', 'sit')); $spanOr = new SpanOrQuery(); $spanOr->addQuery(new SpanFirstQuery(new SpanTermQuery('description', 'ipsum'), 2))->addQuery($spanNear); $search = $repo->createSearch()->addQuery($spanOr); $results = $repo->execute($search, Repository::RESULTS_ARRAY); $this->assertEquals(2, count($results)); }