Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function gen_wsearch($name){
- $name=stopWords($name);
- $ar=preg_split('#\s+#',$name);
- $arnew=array();
- $k=0;
- for($i=0,$size=sizeof($ar);$i<$size;++$i){
- $val0=$ar[$i];
- $val0=preg_replace('#^[^\w-а-яА-яё\d]+|[^\w-а-яА-яё\d]+$#u','',$val0);
- if(mb_strlen($val0,'UTF-8')<=2){
- if($arnew[$k]) $arnew[$k].=' '.$val0;
- else $arnew[$k]=$val0;
- }else{
- $val=&$arnew[$k++];
- if($val){
- $val0=dropBackWords($val0);
- $val.=' '.$val0;
- $arnew[$k++]=$val0;
- }
- else $val=dropBackWords($val0);
- }
- }
- return $arnew;
- }
- function dropBackWords($word) { //тут мы обрабатываем одно слово
- $reg = "/(ый|ой|ая|ое|ые|ому|а|о|у|е|ого|ему|и|ство|ых|ох|ия|ий|ь|я|он|ют|ат|ок)$/iu"; //данная регулярная функция будет искать совпадения окончаний
- $word = preg_replace($reg,'',$word); //убиваем окончания
- return $word;
- }
- function stopWords($query) { //тут мы обрабатываем весь поисковый запрос
- $reg = "/\s(на|под|много|что|когда|где|или|которые|поэтому|все|будем|как|для|в)\s/iu"; //данная регулярка отрежет все стоп-слова отбитые пробелами
- $query = preg_replace($reg,' ',$query); //убиваем стоп-слова
- return $query;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement