လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> စွမ်းဆောင်ရည်ပြည့်သောစာသားရှာဖွေမှုလုပ်ဆောင်နိုင်မှုကိုရရှိရန် PHP ကိုမည်သို့အသုံးပြုရမည်နည်း

စွမ်းဆောင်ရည်ပြည့်သောစာသားရှာဖွေမှုလုပ်ဆောင်နိုင်မှုကိုရရှိရန် PHP ကိုမည်သို့အသုံးပြုရမည်နည်း

gitbox 2025-06-16

1 ။ နိဒါန်း

မျက်မှောက်ခေတ်ဝက်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်စာသားပြည့်ရှာဖွေရေး function သည်မရှိမဖြစ်လိုအပ်သည်, အထူးသဖြင့်သတင်းနှင့်ဘလော့ဂ်များကဲ့သို့သောကြွယ်ဝသောအကြောင်းအရာများဆိုဒ်များအတွက်, ပိုမိုကောင်းမွန်သောအသုံးပြုသူအတွေ့အကြုံနှင့်ရှာဖွေမှုစွမ်းရည်နှင့်တိကျမှန်ကန်မှုကိုတိုးတက်စေရန်အတွက် PHP တွင်စာသားပြည့်ရှာဖွေရေးစွမ်းရည်များကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုနားလည်ရန်အလွန်အရေးကြီးသည်။ ဤဆောင်းပါးသည် PHP နှင့် MySQL မှတစ်ဆင့်ဤအင်္ဂါရပ်ကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်ပုံကိုပြလိမ့်မည်။

2 ။ ခြုံငုံသုံးသပ်ချက်

ဦး စွာအပြည့်အဝစာသားရှာဖွေခြင်း၏အခြေခံစည်းမျဉ်းများကိုနားလည်ကြစို့။ ရိုးရာဒေတာဘေ့စ်ရှာဖွေရေးနည်းလမ်းများသည်များသောအားဖြင့် fuzzy ကိုက်ညီခြင်းသို့မဟုတ်သော့ချက်စာလုံးများကိုမှီခိုခြင်းများကိုမှီခိုသော်လည်း, ဤပြ problem နာကိုဖြေရှင်းရန်အပြည့်အဝစာသားရှာဖွေခြင်းသည်ပိုမိုတိကျသောရှာဖွေမှုအတွေ့အကြုံကိုဖော်ပြရန်အတွက်အညွှန်းနှင့်စကားလုံး segmentation နည်းစနစ်များပေါ်တွင်မှီခိုနေရသည်။

စာသား fult-text search ၏အဓိကအယူအဆမှာစာသားဒေတာများကိုသီးခြားစကားလုံးများနှင့်၎င်းတို့ကိုအညွှန်းတစ်ခုပြုလုပ်ရန်ဖြစ်သည်။ အသုံးပြုသူသည်ရှာဖွေရေးသက်တမ်းကို 0 င်ရောက်သောအခါစနစ်သည်ဤညွှန်းကိန်းများအပေါ် အခြေခံ. သက်ဆိုင်ရာစာသားအကြောင်းအရာများကိုလျင်မြန်စွာရှာဖွေတွေ့ရှိနိုင်ပြီးရှာဖွေမှုရလဒ်များ၏ကိုက်ညီမှုနှင့်ပြန်လည်ရယူခြင်းထိရောက်မှုကိုတိုးတက်စေသည်။

3 ။ အကောင်အထည်ဖော်မှုအဆင့်များ

3.1 ပတ်ဝန်းကျင်ဆိုင်ရာပြင်ဆင်မှု

စာသားအပြည့်ရှာဖွေခြင်းကိုမပြုလုပ်မီ, သငျသညျပထမ ဦး ဆုံးဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်ကိုပြင်ဆင်ရန်လိုအပ်သည်။ ဤဆောင်းပါးသည် PHP ကိုဖွံ့ဖြိုးရေးဘာသာစကားအဖြစ် အသုံးပြု. MySQL ကိုဒေတာဘေ့စ်အဖြစ်ရွေးချယ်လိမ့်မည်။

3.2 ဒေတာစားပွဲပေါ်မှာဖန်တီးပါ

MySQL တွင်စာသားအပြည့်အစုံကိုရှာဖွေမည့်စာသားအကြောင်းအရာများကိုသိမ်းဆည်းရန်ဒေတာဇယားတစ်ခုကိုဖန်တီးရန်လိုအပ်သည်။ ဒေတာစားပွဲများဖန်တီးသော SQL ထုတ်ပြန်ချက်များမှာဤတွင်ဖော်ပြထားသည်။

 CREATE TABLE `news` (
            `id` INT(11) NOT NULL AUTO_INCREMENT,
            `title` VARCHAR(255) NOT NULL,
            `content` TEXT NOT NULL,
            PRIMARY KEY (`id`),
            FULLTEXT KEY `title` (`title`, `content`)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

ဤဇယားတွင် `ခေါင်းစဉ်နှင့်` အကြောင်းအရာကိုအကြောင်းအရာများကိုစာသားရှာဖွေခြင်းအတွက်အသုံးပြုသည်။

3.3 ဒေတာထည့်ပါ

ဒေတာများကိုထည့်ရန်နည်းလမ်းမှာပုံမှန်အတိုင်းဖြစ်သည်, သို့သော်မထည့်ခြင်းမပြုမီစာသားသည် segmented ဟူသောစကားလုံးဖြစ်ရန်လိုအပ်သည်။ PHP သည် Open source word segmentation segmentation tools အချို့ကိုထောက်ပံ့ပေးသည်။

 $content = '၎င်းသည်စာသားရှာဖွေရန်လိုအပ်သောစာသားဒေတာအပိုင်းအစတစ်ခုဖြစ်သည်';
// အသုံးပြုjiebaစကားလုံး segment ကိုပါစေ
$words = jieba($content);
// ဒေတာထည့်ပါ
$sql = "INSERT INTO `news` (`title`, `content`) VALUES ('စာသားအပြည့်', '" . json_encode($words) . "')";
mysqli_query($conn, $sql);

အထက်ဖော်ပြပါကုဒ်သည် Jieba ကိုစာသား participle ကိုဒေတာဘေ့စ်သို့သိမ်းဆည်းရန်နောက်ဆက်တွဲစာသားရှာဖွေမှုများအတွက်အခြေခံအုတ်မြစ်ချသည်။

3.4 ရှာဖွေရေးလုပ်ဆောင်ချက်ကိုအကောင်အထည်ဖော်ခြင်း

ရှာဖွေရေးလုပ်ဆောင်ချက်ကိုအကောင်အထည်ဖော်ရန်အပိုင်းနှစ်ပိုင်းခွဲထားသည်။ သော့ချက်စာလုံးများကိုထုတ်ယူခြင်းနှင့်ရှာဖွေမှုရလဒ်များကိုပြသသည်။

ပထမ ဦး စွာအသုံးပြုသူမှထည့်သွင်းထားသောသော့ချက်စာလုံးများမှစကားလုံးများကိုဖြည့်ဆည်းရန်လိုအပ်သည်။ ထို့နောက် MySQL ၏ Fulttext function ကို အသုံးပြု. ရှာဖွေပါ။

 $keyword = 'စာသားအပြည့်';
// 对关键词စကားလုံး segment ကိုပါစေ
$words = jieba($keyword);
// 执行စာသားအပြည့်
$sql = "SELECT * FROM `news` WHERE MATCH (`title`, `content`) AGAINST ('" . implode(' ', $words) . "' IN BOOLEAN MODE)";
$result = mysqli_query($conn, $sql);

Here we use the jieba participle to split the keywords and pass them to MySQL for matching, and use the `MATCH` and `AGAINST` statements for full text search.

သို့ဆိုလျှင်ကျွန်ုပ်တို့သည်ရှာဖွေမှုရလဒ်များကိုအသုံးပြုသူအားပြသနိုင်သည်။

 echo '<ul>';
while ($row = mysqli_fetch_assoc($result)) {
    echo '<li>' . $row['title'] . '</li>';
}
echo '</ul>';

အထက်ဖော်ပြပါကုဒ်သည်ရှာဖွေထားသောသတင်းခေါင်းစဉ်များကိုရှာဖွေတွေ့ရှိထားသောစာရင်းတွင်ဖော်ပြထားသည်။ အသုံးပြုသူများသည်အသေးစိတ်အကြောင်းအရာများကိုကြည့်ရှုရန်နှိပ်ပါ။

4 ။ အကျဉ်းချုပ်

ဤဆောင်းပါးမှတစ်ဆင့် PHP တွင်ထိရောက်သောစာသားရှာဖွေမှု function ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုလေ့လာသင်ယူခဲ့သည်။ စာသားပြည့်ရှာဖွေရေးရှာဖွေမှုသည်အထူးသဖြင့်အကြောင်းအရာ - အထူးကြပ်မတ်ဝက်ဘ်ဆိုက်များအတွက်ရှာဖွေရေးထိရောက်မှုနှင့်တိကျမှန်ကန်မှုကိုထိရောက်စွာတိုးတက်စေနိုင်သည်။ အဓိကအဆင့်များမှာ data word segmentation, ညွှန်းကိန်းဖန်တီးမှုနှင့်ရှာဖွေမှုရလဒ်များကိုတင်ပြခြင်းတို့ပါဝင်သည်။ ဤနည်းစနစ်များဖြင့်ပြုလုပ်သောနည်းစနစ်များကသင်၏စီမံကိန်းများတွင်ထိရောက်သောရှာဖွေရေးစနစ်ကိုအကောင်အထည်ဖော်နိုင်သည်။