0

私はデータベースのインデックスについてあまり知らないので、私の質問はばかげているかもしれませんが...私は人(名前、姓、組織、仕事など)のパラメータを持っています.今、prePersist()メソッドでインデックス文字列を作成しています.これ:

$this->search_index = $this->name.' '.$this->surname.' '.$this->orgnaization;

さらに「 」で文字列を展開して検索しLIKE 、search_indexで各部分を比較します。

しかし、これは非常にクレイジーに見えます。ベストプラクティスは何ですか? ps私のサンプルコード:

$queryBuilder = $this->createQueryBuilder('s');
foreach(explode(" ", $query) as $key=>$part){
     $queryBuilder->orWhere('s.searchindex LIKE:name'.$key)
          ->setParameter('name'.$key, $part);
}
4

1 に答える 1

0

あなたが正しいことを理解していれば、次のようなものを探していると思います。

$collection = Doctrine::getTable('User')->createQuery('u');
    ->where('column_name LIKE ?', $this->name)
    ->orWhere('column_surname LIKE ?', $this->surname)
    ->orWhere('column_organization LIKE ?', $this->organization)
    ->execute();
于 2012-07-27T11:19:36.097 に答える