public function findBySearchTermOrTags($searchTerm, array $tags = array(), AssetCollection $assetCollection = null)
{
$query = $this->createQuery();
$constraints = array($query->like('title', '%' . $searchTerm . '%'), $query->like('resource.filename', '%' . $searchTerm . '%'), $query->like('caption', '%' . $searchTerm . '%'));
foreach ($tags as $tag) {
$constraints[] = $query->contains('tags', $tag);
}
$query->matching($query->logicalOr($constraints));
$this->addImageVariantFilterClause($query);
$this->addAssetCollectionToQueryConstraints($query, $assetCollection);
return $query->execute();
}