Autor | Zpráva | ||
---|---|---|---|
karelvit Profil * |
#1 · Zasláno: 14. 12. 2015, 22:20:16
Zdravím potřeboval bych poradit
Při vyhledávání se mi děje že když skript najde výsledek který přesně odpovídá hledanému slovu tak už nehledá žádné další. (když žádný neodpovídá přesně tak to vypíše všechny podobné) Mohli by jste mi prosim poradit co udělat aby to hledalo i ty další méně přesné? vyhledávání: $query = "SELECT * , MATCH (title, content) AGAINST ('".$trimm."') AS score FROM articles WHERE MATCH (title, content) AGAINST ('+".$trimm."') and `ua`='X' ORDER BY score DESC"; |
||
Časová prodleva: 3 dny
|
|||
nethor Profil |
Tenhle problém jsem taky řešil, ale pomocí fultextu se mi to nepodařilo. (Chová se někdy nepochopitelně.)
Přidal jsem 'like' fci DotazLike() , kterou fce Result() volá, když ve fulltextovém dotazu vyjde málo výsledků. (Nutno upravit dle potřeby.) function Result(){ $this->Result = Db::Select(BLOCK,$this->QueryFulltext()); $this->Count = count($this->Result); if($this->Count < 1) { // když nenajde fulltextem, zkusí hledat pomocí like $this->Result = Db::Select(BLOCK,$this->QueryLike()); $this->Count = count($this->Result); } } function DotazLike(){ $sloupce = array(); $sloupce["H2"] = 5; $sloupce["Text"] = 2; $sloupce["Detail"] = 1; $Where = array(); $WhereSloupce = array(); foreach ($sloupce as $key=>$value) { $WhereSloupce[] = "`".$key."` like '%".$this->Text."%'" ; } $Where[] = " (".implode(" || ", $WhereSloupce).") "; $this->Where = implode("\n", $Where) ; return $this->Where; } |
||
Časová prodleva: 8 let
|
0