public function getIndex($indexName, array $indexOptions = array(), $specials = null)
    {
        $indexName = strtolower($indexName);

        if (empty($this->indexes[$indexName])) {

            $client = $this->getClient();
            $this->indexes[$indexName] = $client->getIndex($indexName);

            if (!$this->indexes[$indexName]->exists()) {

                $this->indexes[$indexName]->create(
                    $this->mergeDefaultOptions($indexOptions),
                    $specials
                );
            }
        }

        return $this->indexes[$indexName];
    }