TextAnalysis\Queries\QueryAbstractFactory::factory PHP Method

factory() public static method

public static factory ( string $queryString ) : QueryAbstractFactory
$queryString string
return QueryAbstractFactory
    public static function factory($queryString)
    {
        $tokenizer = new GeneralTokenizer();
        $tokens = $tokenizer->tokenize($queryString);
        if (in_array($queryString[0], ['"', "'"]) && in_array($queryString[strlen($queryString) - 1], ['"', "'"])) {
            return new QuotedQuery($queryString);
        } elseif (count($tokens) === 1) {
            return new SingleTermQuery($queryString);
        } else {
            return new MultiTermQuery($queryString);
        }
    }

Usage Example

 /**
  * Accepts a string a query and returns the set of documents relevant 
  * to the query
  * @param string $queryStr
  * @return array 
  */
 public function query($queryStr)
 {
     $queryObj = QueryAbstractFactory::factory($queryStr);
     if ($queryObj instanceof SingleTermQuery && isset($this->index[$queryObj->getQuery()])) {
         return $this->index[$queryObj->getQuery()][self::POSTINGS];
     } else {
         if ($queryObj instanceof MultiTermQuery) {
             return $this->getMultiTermResults($queryObj->getQuery());
         }
     }
     //no results available
     return array();
 }
All Usage Examples Of TextAnalysis\Queries\QueryAbstractFactory::factory