Как сделать полнотекстовый поиск с доктриной? - PullRequest
4 голосов
/ 11 февраля 2010
WHERE column = value    ->add(column, value);
WHERE column <> value   ->add(column, value, Criteria::NOT_EQUAL);
Other Comparison Operators  
> , <   Criteria::GREATER_THAN, Criteria::LESS_THAN
>=, <=  Criteria::GREATER_EQUAL, Criteria::LESS_EQUAL
IS NULL, IS NOT NULL    Criteria::ISNULL, Criteria::ISNOTNULL
LIKE, ILIKE     Criteria::LIKE, Criteria::ILIKE
IN, NOT IN  Criteria::IN, Criteria::NOT_IN
Other SQL Keywords  
ORDER BY column ASC     ->addAscendingOrderByColumn(column);
ORDER BY column DESC    ->addDescendingOrderByColumn(column);
LIMIT limit     ->setLimit(limit)
OFFSET offset   ->setOffset(offset)
FROM table1, table2 WHERE table1.col1 = table2.col2     ->addJoin(col1, col2)
FROM table1 LEFT JOIN table2 ON table1.col1 = table2.col2   ->addJoin(col1, col2, Criteria::LEFT_JOIN)
FROM table1 RIGHT JOIN table2 ON table1.col1 = table2.col2  ->addJoin(col1, col2, Criteria::RIGHT_JOIN)

Выше приведены все основные операции, что эквивалентно полнотекстовому поиску?

1 Ответ

3 голосов
/ 11 февраля 2010

Документация Doctrine о Поиск описывает это очень хорошо.

Заключение:

  • Вы должны добавить поведение Searchable к определению модели и настроить, какие поля должны быть проиндексированы.
  • Возможно, вам придется настроить некоторые другие вещи, которые описаны в документации.
  • Вы можете выполнить поиск с помощью search, например ::

    $newsItemTable = Doctrine_Core::getTable('NewsItem');
    $results = $newsItemTable->search('test');
    
...