2017-03-05 10 views
1

質問はしませんが、ルールベースの分類アルゴリズムを使用して検索システムを作成しようとしていますが、問題を実装する方法がわからないという問題があります。ジョブファインダ上のルールベース分類アルゴリズム

私の頭の中にアイデアがありました。まず、php select文を使用してデータを生成し、ユーザーの入力と一致する場合はすべてのデータをテストします。私はそれを正しいものにしているのか、それとも何か間違っているのですか?

答えて

0

あなたの入力に基づいてルールを作成し、ポストまたはURL(URLで優先)のいずれかで検索クエリにデータを送信すると仮定します。あなたはこの

public function search_item($data,$per_page,$offset=0) 
{ 
    $term_q=''; 
    $loc_q=''; 
    $pur_q=''; 
    if($per_page==0) 
    { 
     $limit_q=''; 
    } 
    else 
    { 
     $limit_q='LIMIT '.$offset.','.$per_page; 
    } 

    if($data['keyword']!='') 
    {$term_q='AND (property.title LIKE "%'.addslashes($data['keyword']).'%" OR property.description LIKE "%'.addslashes($data['keyword']).'%" OR property.city LIKE "%'.addslashes($data['keyword']).'%") ';} 
    if($data['location']!='') 
    { 
     $loc_q=' AND (property.location LIKE "%'.addslashes($data['location']).'%" OR property.title LIKE "%'.addslashes($data['location']).'%" OR property.description LIKE "%'.addslashes($data['location']).'%" OR property.city LIKE "%'.addslashes($data['location']).'%") '; 
    } 
    if($data['purpose']!='') 
    { 
     $pur_q=' AND property.purpose LIKE "%'.addslashes($data['purpose']).'%" '; 
    } 
    $data=$this->db->query("SELECT property.*, users.name as posted_by, property_types.name as property_type 
         from property 
         inner join users on users.id=property.posted_by 
         inner join property_types on property_types.id=property.type 

         WHERE property.status='approved' 
         {$term_q} 
         {$loc_q} 
         {$pur_q} 
         {$limit_q} 
         ")->result_array(); 
    //print_r($this->db->last_query());exit; 
    for($i=0;$i<count($data);$i++) 
    { 
     $data[$i]['images']=$this->db->query('SELECT * from property_images WHERE property_images.property_id='.$data[$i]['id'])->result_array(); 
    } 

    return $data; 
    //return $this->db->last_query(); 
} 

のような検索機能のものを作成しますそれを送信時に仮定のための四つ

enter image description here このようなルールが

enter image description here

のような検索のURLを作成しますものになるだろうフォームCodeigniterフレームワークの構文を気にしてください。しかし、私はそれをあなたに説明します。関数内のデータパラメータは、URLから取得したもので、$ _REQUESTから取得したこの関数に送られます。 $ per_pageと$ offsetは改ページのためのものです。

検索アルゴリズムは、データをフィルタリングするためのルールを定義する小さな句のチャンクを持つ大きなSELECTクエリです。関数内に表示されている場合

上記のセクションでは、フィルタされたデータを取得するためにメインクエリに埋め込まれているすべてのルールを定義しています。だからあなたは非常に簡単に見て、あなたのルールを定義するだけです。何らかの形で入力してもらうか、自分で送信してそれらのルールを処理してクエリを作成し、最後にそのクエリを実行してデータベースから結果を取得します。

+0

ええ、私はsqlを使ってデータを検索することを提案しましたが、私のアドバイザーはアルゴリズムにこだわるべきだと言っていたので、そのアイデアは間違っていると思いました。 –

関連する問題