Exemplo n.º 1
0
 public function testParent()
 {
     $index = $this->_createIndex();
     $typeBlog = new Elastica_Type($index, 'blog');
     $typeComment = new Elastica_Type($index, 'comment');
     $mapping = new Elastica_Type_Mapping();
     $mapping->setParam('_parent', array('type' => 'blog'));
     $typeComment->setMapping($mapping);
     $entry1 = new Elastica_Document(1);
     $entry1->add('title', 'Hello world');
     $typeBlog->addDocument($entry1);
     $entry2 = new Elastica_Document(2);
     $entry2->add('title', 'Foo bar');
     $typeBlog->addDocument($entry2);
     $entry3 = new Elastica_Document(3);
     $entry3->add('title', 'Till dawn');
     $typeBlog->addDocument($entry3);
     $comment = new Elastica_Document(1);
     $comment->add('author', 'Max');
     $comment->setParent(2);
     // Entry Foo bar
     $typeComment->addDocument($comment);
     $index->optimize();
     $query = new Elastica_Query_HasChild('Max', 'comment');
     $resultSet = $typeBlog->search($query);
     $this->assertEquals(1, $resultSet->count());
     $this->assertEquals(array('title' => 'Foo bar'), $resultSet->current()->getData());
 }
Exemplo n.º 2
0
 /**
  * Index a associative array.
  *
  * @param \Elastica_Type $type
  * @param int $id ID of document
  * @param array $data Array with data of document
  */
 protected function index(\Elastica_Type $type, $id, $data, $parent = false)
 {
     // create document
     $document = new \Elastica_Document($id, $data);
     if ($parent) {
         $document->setParent($parent);
     }
     // save to index
     $type->addDocument($document);
 }