2011-05-31 20 views
7

मैं अपने व्यापार नियंत्रक में सामान्य खोज कार्यक्षमता का उपयोग कर रहा हूं। लेकिन अब पूर्ण पाठ खोज को पेजिनेट के साथ लागू करने की आवश्यकता है कोई भी विचार या नमूना दे सकता है? मैं MyISAM टैबीज़केकफ़्पी में पूर्ण पाठ खोज? कोई उदाहरण

और यह मेरा तालिका संरचना के साथ MySQL का उपयोग कर रहा, फ़ील्ड को बोल्ड चिह्नित खोज

CREATE TABLE IF NOT EXISTS businesses ( 
    id bigint(20) unsigned NOT NULL AUTO_INCREMENT, 
    created date NOT NULL, 
    modified datetime NOT NULL, 
    user_id bigint(20) NOT NULL, 
    slug varchar(255) NOT NULL, 
    **`name` varchar(255) NOT NULL,** 
    **street_name varchar(255) DEFAULT NULL,** 
    **shopping_center varchar(255) DEFAULT NULL,** 
    state_id int(10) NOT NULL, 
    suburb_id int(10) NOT NULL, 
    zip_code varchar(12) DEFAULT NULL, 
    website varchar(250) DEFAULT NULL, 
    email varchar(255) DEFAULT NULL, 
    phone_no varchar(255) NOT NULL, 
    mobile_no varchar(255) DEFAULT NULL, 
    fax varchar(255) DEFAULT NULL, 
    is_active tinyint(1) NOT NULL DEFAULT '1', 
    PRIMARY KEY (id) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 

उत्तर

9

में उपयोग करने के लिए के बाद आप created your FULLTEXT indices है यह सामान्य पृष्ठ पर अंक लगाना स्थितियों से बिल्कुल अलग नहीं है की जरूरत है, तो आप बस अपने एसक्यूएल को थोड़ा और मैन्युअल रूप से बनाने की आवश्यकता है और सबसे महत्वपूर्ण उपयोगकर्ता इनपुट मैन्युअल रूप से से बचें।

$query = 'foobar'; // the user input to search for 
$escapedQuery = $this->Business->getDataSource()->value($query); 

$this->paginate['conditions'] = array("MATCH (Business.name) AGAINST ($escapedQuery)"); 
$businesses = $this->paginate(); 
+0

यदि मुझे नाम और street_name और shopping_center जैसे कई फ़ील्ड का उपयोग करने की आवश्यकता है ??? – AnNaMaLaI

+1

['MATCH ... AGAINST'] के लिए प्रलेखन पढ़ें (http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html#function_match) और तदनुसार अपने सूचकांक और प्रश्नों का निर्माण करें। – deceze

+0

हां इसे मिला। धन्यवाद मुझे एक समाधान मिल गया – AnNaMaLaI

संबंधित मुद्दे