eZ\Publish\Core\Search\Elasticsearch\Content\Serializer::getIndexDocument PHP Method

getIndexDocument() public method

Returns document _source that can be used for (bulk) indexing.
public getIndexDocument ( Document $document ) : string
$document Document
return string
    public function getIndexDocument(Document $document)
    {
        return json_encode($this->getDocumentHash($document));
    }

Usage Example

Example #1
0
 /**
  * Performs bulk index of a given array of documents.
  *
  * @param \eZ\Publish\Core\Search\Elasticsearch\Content\Document[] $documents
  */
 public function bulkIndex(array $documents)
 {
     if (empty($documents)) {
         return;
     }
     $payload = "";
     foreach ($documents as $document) {
         $payload .= $this->serializer->getIndexMetadata($document) . "\n";
         $payload .= $this->serializer->getIndexDocument($document) . "\n";
     }
     $result = $this->client->request("POST", "/{$this->indexName}/_bulk", new Message(array("Content-Type" => "application/json"), $payload));
     if ($result->headers["status"] !== 201 && $result->headers["status"] !== 200) {
         throw new RuntimeException("Wrong HTTP status received from Elasticsearch: " . $result->headers["status"]);
     }
     $this->flush();
 }