Herkese Selamlar bi konuda yardımınızı istiyecektim.
https://github.com/nicolaslopezj/searchable
bu paketi kullanıyorum ve
public function siteAra()
{
$kelime = Input::get('kelime');
$result = siteler::where(['durum' => 1])->search($kelime,null,true)
->with('kategories')->with('reklamlar')
->paginate(10);
$reklamlar1 = reklam::where([['bakiye', '!=', null], ['onay_durumu', "=", 1]])->with('siteler')->search($kelime, null, true)->get()->toArray();
$reklamlar2 = [];
foreach($result as $r) {
if($r->reklamlar) {
foreach($r->reklamlar as $reklam) {
array_push($reklamlar2, $reklam);
}
}
}
$reklamlar = array_merge($reklamlar1, $reklamlar2);
usort($reklamlar, function($a, $b) {
return ($a["bakiye"] <= $b["bakiye"]) ? 1 : -1;
});
$ids = array_column($reklamlar, 'id');
$ids = array_unique($ids);
$reklamlar = array_filter($reklamlar, function ($key, $value) use ($ids) {
return in_array($value, array_keys($ids));
}, ARRAY_FILTER_USE_BOTH);
// return $reklamlar;
$reklamust = array_slice($reklamlar, 0, 4);
return view('sonuc',compact('kelime','result','reklamlar','reklamust'));
}
Kodum bu : Siteler tablosu ve sitelerin bağlı olduğu reklamlar tablosu düşünelim :
reklamlar tablom :
http://prntscr.com/lbl2tv
şimdi bu searchable paketi en yakın aramalara göre puanlama yapıp en yakın sonucu en üste gösteriyor. Sorun yok . Site :
https://yetita.com/site-ara?kelime=almina burda almina kelimesini aratıyorum fakat onay durumu 0 olmasına rağmen gösteriyor anlamadığım bir şekilde sadece onay durumu 1 olanların çıkması gerekiyor ama işin içinden çıkamadım buraya kadar gelip burda kaldım.