public function whereText(
        $search,
        $language = null,
        $caseSensitive = null,
        $diacriticSensitive = null
    ) {
        $this->_expression['$text'] = array(
            '$search' => $search,
        );

        if ($language) {
            $this->_expression['$text']['$language'] = $language;
        }

        // Version 3.2 feature
        if ($caseSensitive) {
            $this->_expression['$text']['$caseSensitive'] = (bool) $caseSensitive;
        }

        // Version 3.2 feature
        if ($diacriticSensitive) {
            $this->_expression['$text']['$diacriticSensitive'] = (bool) $diacriticSensitive;
        }

        return $this;
    }