
I think you can just add something like:
if (isset($_GET["q"])) {
$SearchPage->Statement .= " ORDER BY INSTR(BanglaHadith,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(EnglishHadith,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(ChapterEN,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(HadithNote,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(ChapterBG,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(explanation,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(ArabicHadith,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(ArabicHadithNew,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC, INSTR(ChapterAR,".$SearchPage->getSQLValue($_GET["q"],"s") .")>0 DESC";
}
on the line before:
$SearchPage->execute();

Dear Ray
Thanks for your great support!
Meanwhile I did a little change on the generated code to another page and it brings the result what I was looking for.
I just change "and"=>" ", "or"=>", " instate of "and"=>", ", "or"=>" " and the problem is solved and it is giving me perfect result every time.