/**
  * Tests toArray method.
  */
 public function testHighlightToArray()
 {
     $highlight = new Highlight([new Field('name')]);
     $highlight->setOrder('test');
     $highlight->setHighlighterType('postings');
     $highlight->setFragmentSize(5);
     $highlight->setNumberOfFragments(5);
     $highlight->setTagsSchema('styled');
     $highlight->setTag('tag', 'class');
     $highlight->setTag('only_tag');
     $result = ['order' => 'test', 'type' => 'postings', 'fragment_size' => 5, 'number_of_fragments' => 5, 'tags_schema' => 'styled', 'post_tags' => ['</tag>', '</only_tag>'], 'pre_tags' => ['<tag class="class">', '<only_tag>'], 'fields' => ['name' => ['matched_fields' => ['name']]]];
     $this->assertEquals($result, $highlight->toArray());
 }
示例#2
0
 /**
  * Test highlight for TermQuery.
  *
  * The following methods of Field class tested:
  *
  *  - setting highlighter type
  *  - setting fragment size
  *  - setting number of fragments
  */
 public function testHighlightedField()
 {
     $repository = $this->getManager()->getRepository('AcmeTestBundle:Product');
     $highlight = new Highlight();
     $highlight->setTag('tag')->add((new Field('title'))->setForceSource(true)->setHighlighterType(Field::TYPE_PLAIN)->setFragmentSize(12)->setNumberOfFragments(1));
     $search = $repository->createSearch()->addQuery(new TermQuery('title', 'foo'))->setHighlight($highlight);
     $results = $repository->execute($search, Repository::RESULTS_RAW);
     $this->assertStringStartsWith('<tag>', $results['hits']['hits'][0]['highlight']['title'][0]);
     $this->assertLessThanOrEqual(12, strlen(strip_tags($results['hits']['hits'][1]['highlight']['title'][0])));
     $this->assertEquals(1, count($results['hits']['hits'][1]['highlight']['title']));
 }
 /**
  * Check if highlight is parsed as expected.
  *
  * @expectedException \UnderflowException
  * @expectedExceptionMessage Offset unknown_field undefined.
  */
 public function testHighlightParse()
 {
     /**
      * @var Repository $repository
      * @var TermQuery  $termQuery
      */
     list($repository, $termQuery) = $this->buildRepositoryAndTerm();
     $highlight = new Highlight();
     $highlight->setTag('tag')->setOrder('score')->add((new Field('title'))->setForceSource(true));
     $result = $this->executeHighlight($repository, $termQuery, $highlight, Repository::RESULTS_OBJECT)[0];
     $this->assertStringStartsWith('<tag>foo</tag>', $result->getHighLight()['title']);
     $result->getHighLight()['unknown_field'];
 }