Recommend this page to a friend!
  Classes of Eustaquio Rangel de Oliveira Jr.  >  PHP Torm ORM for ElasticSearch  >  >  Download  
Role: Documentation
Content type: text/markdown
Description: Documentation
Class: PHP Torm ORM for ElasticSearch
Adapter for Torm ORM to access Elastic
Author: By
Last change: If not updating, avoid delete also. Method to disable global indexing.
Now we can avoid updating documents on test environment.
Date: 5 years ago
Size: 2,430 bytes


Class file image Download


This is a trait to insert ElasticSearch funcionality on TORM objects.


Change (or create, if needed) your Composer file to include it:

    "require": {
        "taq/torm-elastic": ">=0"


Just open your model and insert the trait, like:

class User extends TORM\Model {
    use TORM\ElasticSearch;

and, after every object saving, it will be send for ElasticSearch indexing, using some rules:

  • Need to insert the trait using use TORM\ElasticSearch on the model;
  • Need to specify the app name using setElasticSearchIndex(<name>). This will be the ElasticSearch index.
  • After inserting the trait, a new afterInitialize method will be added on the model. If the model already has a afterInitialize method, the TORM\ElasticSearch afterInitialize method must be called explicity on its end. This is because of the way PHP traits works.
  • If not specified, all the model attributes will be indexed. To define just some key attributes, we can use the setElasticSearchValues(<attributes>) method, sending an array with the attributes, like: ` User::setElasticSearchValues(["name"]); ` then only the name attribute will be indexed.


Then we can search using something like:

$rtn = ElasticUser::elasticSearch("name", "john");

resulting in something like

array(2) {
  'id' =>
  string(1) "1"
  'name' =>
  string(12) "John Doe Jr."


When importing a new data collection, we can use the import method, like:


Getting document count


Updating a document

We can explicity update a document using:


Deleting a document

We can explicity delete a document using:



We can disable updating documents using


and enable again sending false on the same method.


If using a TORM test enviroment (defined setting the enviroment var TORM_ENV to test), the index name will be automatically changed to <index_name>_test.

If we want to avoid updating a document on the test enviroment, we can use


For more information send a message to info at phpclasses dot org.