0

Web サイト全体 (ユーザー プロファイル、投稿など) を検索できる検索機能を Web サイトに追加したい

検索ページにタブ ( User 、 Post 、 Comments ) を作成し、タブをクリックするたびに、各モデルのデフォルトの Search() 関数を呼び出して、完全なレコードを表示しています。検索ボックスの 3 つのタブには、検索ボックスからそのキーワードが含まれているものだけが表示されます。

これが私のコードです:

私の SiteController で:

このコントローラーは、メインの検索ボックス用ですmain.php

public function actionSearch() {

           $model = new TblUserProfile;

        $this->render('search'
                ,  array('model'=>$model)

);


//        } 

        }

次に、プロファイルコントローラーで:

public function actionProfileSearch() {


        $model = new TblUserProfile;


        $this->layout = 'null';
        $this->render('/tblUserProfile/profilesearch', array('model' => $model));
    }

次に、投稿およびコメントコントローラーで同じことを行います!

これは私の検索ページ(サイト/検索)です:

<?php 
$this->widget('zii.widgets.jui.CJuiTabs', array(
    'tabs'=>array(
        'People'=>array('ajax'=>array('/tblUserProfile/profilesearch','view'=>'/tblUserProfile/profilesearch')),

         'Blogs'=> array('ajax'=>array('/tblPost/postsearch','view'=>'/tblPost/postsearch')),


        'Comments'=> array('ajax'=>array('/tblComments/commentsearch','view'=>'/tblComments/commentsearch','search'=>'omer')),
    ),
    'options'=>array(
        'collapsible'=>true,
        'selected'=>0,
    ),
    'htmlOptions'=>array(
        'style'=>'width:900px;'
    ),
));
?>

今、検索ボックスから値を取得するのに役立ちたいのですが、各検索で、そのキーワード検索のみを完了できないようにすることができます。これを行うにはどうすればよいですか?

4

1 に答える 1

4

google site searchなどのサードパーティのサービスを見ることができます

ただし、カスタム ソリューションが必要な場合は、非常に複雑になる可能性があります。その方法の 1 つは、インデックス データベース テーブルを作成することです。このテーブルの構造は、何を格納する必要があるかによって異なります。

この背後にある概念は、データが他の「インデックス可能な」テーブル (ユーザー プロファイル、投稿など) のいずれかに挿入されるたびに、インデックス テーブルにインデックスが作成され、格納されるということです。

  • 検索可能なテキスト (ユーザーの検索クエリが比較されるコンテンツ)
  • コンテンツの種類 (ユーザー プロフィール/投稿など)
  • コンテンツの URL (または関連するコンテンツへのリンク方法への参照)

この方法では、ユーザーが検索するときに、クエリをインデックスと比較するだけで、結果が返されます。タイプのフィルターを含めることもできます (例: ユーザーが検索するコンテンツのタイプを選択できるドロップダウン)。

于 2012-11-12T09:55:49.990 に答える