讯睿搜索模块改为永远都按ID排序的方法-庆云php-

{site_name}

{site_name}

🌜 搜索

讯睿搜索模块改为永远都按ID排序的方法

▥ 𝄐 0
<p>当我们在遇到数据库较大时,常被搜索引擎大量查找时,我们常常会较量,</p><p>下边分别讲两种修改方案。</p><p>当排序慢时,我们在MYSQL慢日志中可以查看到,</p><p>凡遇到</p><p>SELECT * FROM `dr_1_news` WHERE (`dr_1_news`.`title` LIKE "%林景熙%" OR `dr_1_news`.`keywords` LIKE "%林景熙%") ORDER BY `dr_1_news`.`hits` DESC LIMIT 300,10;</p><p>这样的,我们直接修改下边文件,<br></p><p>dayrui/App/Module/Action/Search.php</p><p>修改下105行如下代码,主要是加这一行,</p><p>//搜索大于300页时,直接查询条件置空,无法查找。。<br>if($page&gt;300){<br>&nbsp;&nbsp;&nbsp; $sql_where='';<br>}</p><p>可以将大于多少页后的数据置空不查询,我这是将300页面后的数据置空不可询。。</p><p><br></p><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'JetBrains Mono',monospace;font-size:9.8pt;"><span style="color:#9876aa;background-color:#232525;">$system</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'order'</span><span style="background-color:#232525;">] = </span><span style="color:#9876aa;background-color:#232525;">$this</span><span style="background-color:#232525;">-&gt;</span><span style="color:#ffc66d;background-color:#232525;">_set_orders_field_prefix</span><span style="background-color:#232525;">(</span><span style="color:#9876aa;background-color:#232525;">$system</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'order'</span><span style="background-color:#232525;">]</span><span style="color:#cc7832;background-color:#232525;">, </span><span style="color:#9876aa;background-color:#232525;">$_order</span><span style="background-color:#232525;">)</span><span style="color:#cc7832;background-color:#232525;">; </span><span style="color:#808080;background-color:#232525;">// </span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">给排序字段加上表前缀<br></span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;"><br></span><span style="color:#808080;background-color:#232525;">// </span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">分页处理<br></span><span style="color:#9876aa;background-color:#232525;">$page </span><span style="background-color:#232525;">= </span><span style="color:#9876aa;background-color:#232525;">$this</span><span style="background-color:#232525;">-&gt;</span><span style="color:#ffc66d;background-color:#232525;">_get_page_id</span><span style="background-color:#232525;">(</span><span style="color:#9876aa;background-color:#232525;">$system</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'page'</span><span style="background-color:#232525;">])</span><span style="color:#cc7832;background-color:#232525;">;<br></span><span style="color:#808080;background-color:#232525;">//</span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">搜索大于</span><span style="color:#808080;background-color:#232525;">300</span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">页时,直接查询条件置空,无法查找。。<br></span><span style="color:#cc7832;background-color:#232525;">if</span><span style="background-color:#232525;">(</span><span style="color:#9876aa;background-color:#232525;">$page</span><span style="background-color:#232525;">&gt;</span><span style="color:#6897bb;background-color:#232525;">300</span><span style="background-color:#232525;">){<br></span><span style="background-color:#232525;"> </span><span style="color:#9876aa;background-color:#232525;">$sql_where</span><span style="background-color:#232525;">=</span><span style="color:#6a8759;background-color:#232525;">''</span><span style="color:#cc7832;background-color:#232525;">;<br></span><span style="background-color:#232525;">}<br></span></pre><p></p><p><br></p><p>修改下76行如下代码,主要是这一行,$system['order'] ='id';,可以将排序强制改为以ID排序。<br></p><pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'JetBrains Mono',monospace;font-size:9.8pt;"><span style="color:#808080;background-color:#232525;">// </span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">排序操作<br></span><span style="color:#cc7832;background-color:#232525;">if </span><span style="background-color:#232525;">(!</span><span style="color:#9876aa;background-color:#232525;">$system</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'order'</span><span style="background-color:#232525;">] &amp;&amp; </span><span style="color:#cc7832;background-color:#232525;">isset</span><span style="background-color:#232525;">(</span><span style="color:#9876aa;background-color:#232525;">$where</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="background-color:#232525;">]) &amp;&amp; </span><span style="color:#9876aa;background-color:#232525;">$where</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="background-color:#232525;">][</span><span style="color:#6a8759;background-color:#232525;">'adj'</span><span style="background-color:#232525;">] == </span><span style="color:#6a8759;background-color:#232525;">'IN' </span><span style="background-color:#232525;">&amp;&amp; </span><span style="color:#9876aa;background-color:#232525;">$where</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="background-color:#232525;">][</span><span style="color:#6a8759;background-color:#232525;">'value'</span><span style="background-color:#232525;">]) {<br></span><span style="background-color:#232525;"> </span><span style="color:#808080;background-color:#232525;">// </span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">按</span><span style="color:#808080;background-color:#232525;">id</span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">序列来排序<br></span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;"> </span><span style="color:#9876aa;background-color:#232525;">$system</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'order'</span><span style="background-color:#232525;">] = strlen(</span><span style="color:#9876aa;background-color:#232525;">$where</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="background-color:#232525;">][</span><span style="color:#6a8759;background-color:#232525;">'value'</span><span style="background-color:#232525;">]) &lt; </span><span style="color:#6897bb;background-color:#232525;">10000 </span><span style="background-color:#232525;">&amp;&amp; </span><span style="color:#9876aa;background-color:#232525;">$where</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="background-color:#232525;">][</span><span style="color:#6a8759;background-color:#232525;">'value'</span><span style="background-color:#232525;">] ? </span><span style="color:#6a8759;background-color:#232525;">'instr("'</span><span style="background-color:#232525;">.</span><span style="color:#9876aa;background-color:#232525;">$where</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="background-color:#232525;">][</span><span style="color:#6a8759;background-color:#232525;">'value'</span><span style="background-color:#232525;">].</span><span style="color:#6a8759;background-color:#232525;">'", `'</span><span style="background-color:#232525;">.</span><span style="color:#9876aa;background-color:#232525;">$table</span><span style="background-color:#232525;">.</span><span style="color:#6a8759;background-color:#232525;">'`.`id`)' </span><span style="background-color:#232525;">: </span><span style="color:#6a8759;background-color:#232525;">'NULL'</span><span style="color:#cc7832;background-color:#232525;">;<br></span><span style="background-color:#232525;">} </span><span style="color:#cc7832;background-color:#232525;">else </span><span style="background-color:#232525;">{<br></span><span style="background-color:#232525;"> </span><span style="color:#808080;background-color:#232525;">// </span><span style="color:#808080;background-color:#232525;font-family:'宋体',monospace;">默认排序参数<br></span><span style="color:#808080;background-color:#232525;">// !$system['order'] &amp;&amp; ($system['order'] = $system['flag'] ? 'updatetime_desc' : ($action == 'hits' ? 'hits' : 'updatetime'));<br></span><span style="color:#808080;background-color:#232525;"> </span><span style="color:#9876aa;background-color:#232525;">$system</span><span style="background-color:#232525;">[</span><span style="color:#6a8759;background-color:#232525;">'order'</span><span style="background-color:#232525;">] =</span><span style="color:#6a8759;background-color:#232525;">'id'</span><span style="color:#cc7832;background-color:#232525;">;<br></span><span style="background-color:#232525;">}<br></span></pre><p></p>