/**
  * Clear search index that is associated with this object
  *
  * @param void
  * @return boolean
  */
 function clearSearchIndex()
 {
     return SearchableObjects::dropContentByObject($this);
 }
 /**
  * Save object. If object is searchable this function will add conetent of searchable fields 
  * to search index
  *
  * @param void
  * @return boolean
  */
 function save()
 {
     $result = parent::save();
     // If searchable refresh content in search table
     if ($this->isSearchable()) {
         SearchableObjects::dropContentByObject($this);
         $project = $this->getProject();
         foreach ($this->getSearchableColumns() as $column_name) {
             $content = $this->getSearchableColumnContent($column_name);
             if (trim($content) != '') {
                 $searchable_object = new SearchableObject();
                 $searchable_object->setRelObjectManager(get_class($this->manager()));
                 $searchable_object->setRelObjectId($this->getObjectId());
                 $searchable_object->setColumnName($column_name);
                 $searchable_object->setContent($content);
                 if ($project instanceof Project) {
                     $searchable_object->setProjectId($project->getId());
                 }
                 $searchable_object->setIsPrivate($this->isPrivate());
                 $searchable_object->save();
             }
             // if
         }
         // if
     }
     // if
     return $result;
 }