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

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

M66 2025-06-26

ယေဘုယျအမြင်

Sphinx PHP သည်စွမ်းဆောင်ရည်ရှိသောစာသား full-text search engine ဖြစ်သည်။ ဖွံ့ဖြိုးရေးလုပ်ငန်းစဉ်အတွင်းဇယားမျိုးစုံတွင်ပူးတွဲရှာဖွေမှုများကိုပြုလုပ်ရန်နှင့်ပြသရန်ရှာဖွေမှုရလဒ်များကိုပေါင်းစပ်ရန်မကြာခဏလိုအပ်သည်။ ဤဆောင်းပါးသည် Sphinx PHP ကို ​​အသုံးပြု. ဤအင်္ဂါရပ်ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုရှင်းပြပါမည်။

သဘာဝပတ်ဝန်းကျင်ပြင်ဆင်မှု

ပထမ ဦး စွာ Sphinx PHP ကိုထည့်သွင်းရန်လိုအပ်သည်။ Composer ကိုမှီခိုနေရသောစီမံခန့်ခွဲမှုကိရိယာတစ်ခုအနေဖြင့် အသုံးပြု. သင်၏စီမံကိန်း၏ composer.json ဖိုင်တွင်အောက်ပါမှီခိုချက်များကိုသင်ထည့်နိုင်သည်။

{
  "တောင်းဆို": {
    "Sphinxsearch / Sphinx-PHP": "^ 2.2"
  }
}

တပ်ဆင်မှုပြီးဆုံးပြီးနောက်မှီခိုမှုကိုတင်ရန် composer install command ကို run ပါ။

Sphinx အညွှန်းကိန်းကို configuring

စားပွဲတင်တွဲဖက်ရှာဖွေမှုပြုလုပ်နိုင်ရန်အတွက် Sphinx ၏အညွှန်းကိုပထမ ဦး ဆုံး configure လုပ်ရန်လိုအပ်သည်။ ကျွန်ုပ်တို့တွင်စားပွဲ 2 ခုရှိသည်ဆိုပါစို့။ အသုံးပြုသူအမည်နှင့်အသက်အရွယ်ပါ 0 င်သော အသုံးပြုသူများ ဇယားဖြစ်သည်။ အခြားတစ်ခုမှာထုတ်ကုန်၏အမည်နှင့်ဖော်ပြချက်ပါ 0 င်သည့် ထုတ်ကုန် ဇယားဖြစ်သည်။ ဒီဇယားနှစ်ခုကိုရှာဖွေပြီးရလဒ်များကိုပေါင်းစည်းချင်တယ်။

Sphinx configuration file တွင်ပထမ ဦး ဆုံး အညွှန်း ကိန်းနှစ်ခုနှင့် ထုတ်ကုန် စားပွဲ၌သက်ဆိုင်ရာနံပါတ်နှစ်ခုကိုသတ်မှတ်ပါ။ ဥပမာ configuration ကိုအောက်ပါအတိုင်းဖြစ်သည် -

Index users_index {
  အရင်းအမြစ် = အသုံးပြုသူများ
  Path = / / VAR / ဒေတာ / အသုံးပြုသူများ
  ...
}
<p>အညွှန်းကိန်းများ and_index {<br>
အရင်းအမြစ် = ထုတ်ကုန်များ<br>
Path = / / ဒေတာ / ထုတ်ကုန်များ<br>
...<br>
}<br>

နောက်တစ်ခုက searchd configuration ထဲမှာပေါင်းစည်းတဲ့အညွှန်းကိုသတ်မှတ်ပါတယ်။

My_index {
  အမျိုးအစား = ဖြန့်ဝေ
  local = users_index
  local = ထုတ်ကုန်များ _index
}

ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် into _index နှင့် ထုတ်ကုန်များ ပါ 0 င်သည့် My_index ဟုခေါ်သော My_index ဟုခေါ်သောပူးတွဲအညွှန်းတစ်ခုဖန်တီးသည်။

ရှာဖွေရေးစစ်ဆင်ရေးလုပ်ဆောင်ပါ

ထို့နောက်ကျွန်ုပ်တို့သည် SPHINX PHP မှတစ်ဆင့်ဖက်ဒရယ်ရှာဖွေမှုတစ်ခုကိုလုပ်ဆောင်နိုင်သည်။ ပထမ ဦး စွာ, Sphinx client ဥပမာတစ်ခုကိုဖန်တီးပြီး Sphinx server သို့ဆက်သွယ်ရန်လိုအပ်သည်။

quant_once &#39;ရောင်းချသူ / autoload.php&#39;;
<p>Sphinx \ Sphinxclient ကိုသုံးပါ။</p>
<p>// Sphinx client ကိုဥပမာဖန်တီးပါ<br>
$ client = sphinxclient (),</p>
<p>// sphinx server ကိုဆက်သွယ်ပါ<br>
$ client-> setserver (&#39;127.0.0.1.1&#39;, 9312);<br>

ထို့နောက်ကျွန်ုပ်တို့သည် query options များကို သတ်မှတ်. ရှာဖွေရေးစစ်ဆင်ရေးကိုလုပ်ဆောင်နိုင်သည်။

// set query options $ client-> setmatchmode (sphinxclies :: sphàmatch_all) // လုံးဝကိုက်ညီ $ client-> setlimits (0, 10); // ပြန်လာရလဒ်များအရေအတွက်ကိုသတ်မှတ်<p> // ရှာဖွေရေးစစ်ဆင်ရေးလုပ်ဆောင်ပါ<br>
$ ရလဒ် = $ client-> query (&#39;keyword&#39;, &#39;my_index&#39;);</p>
<p>// လုပ်ငန်းစဉ်ရှာဖွေမှုရလဒ်များ<br>
လျှင် ($ ရလဒ်! == fiss) {<br>
လျှင် ($ ရလဒ် [&#39;&#39; စုစုပေါင်း &#39;]> 0) {<br>
foreach ($ ရလဒ် [&#39;ကိုက်ညီ] $ ပွဲစဉ်အဖြစ်) {<br>
ECHO $ ​​ကိုက်ညီမှု [&#39;ID&#39;] ။ &#39;&#39;: &#39;&#39; ။ $ ကိုက်ညီ [အလေးချိန် &#39;] ။ "\ n";<br>
}<br>
} အခြား<br>
ECHO &#39;မပွဲကိုမတွေ့ရပါ။ &#39;&#39;;<br>
}<br>
} အခြား<br>
ECHO &#39;Search မအောင်မြင်ပါ။ &#39;&#39;;<br>
}<br>

အကျဉ်းချုပ်

အထက်ပါဥပမာသည်စားပွဲပေါင်းများစွာပူးတွဲရှာဖွေရေးကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုပြသသည်။ index ကိုဆင်ခြင်တုံတရားကိုဆင်ခြင်ခြင်းအားဖြင့် Sphinx PHP မှပေးသောရှာဖွေရေးစွမ်းရည်များကိုအသုံးပြုခြင်းအားဖြင့် developer များသည် data table မျိုးစုံတွင်ပူးတွဲမေးမြန်းချက်များကိုအလွယ်တကူပြုလုပ်နိုင်ပြီးရှာဖွေမှုရလဒ်များကိုပြန်လည်ထူထောင်ခြင်းများကိုအလွယ်တကူပြုလုပ်နိုင်သည်။ ဤဆောင်းပါးသည်သင်၏ဖွံ့ဖြိုးရေးလုပ်ငန်းများအတွက်အထောက်အကူဖြစ်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။