public function sloppy($phrase, $distance)
    {
        if ($distance <= 0) {
            throw new InvalidArgumentException('Slop distance has to be greater than 0.');
        }

        if (\strpos($phrase, ' ') === false) {
            throw new InvalidArgumentException('Sloppy phrase must consist of multiple terms, separated with spaces.');
        }

        $this->predicates[] = $this->processValue($phrase) . '~' . $distance;

        return $this;
    }