陪艳终老 發表於 2023-6-4 00:00:00

PHPCMS取消搜索时的分词功能的方法

<p>
PHPCMS的搜索功能相比其他CMS算是比较差的了,搜索精度非常低。虽说他有个搜索关键字分词功能,但有的时候不分词的准确度却会高于分词。如何去掉PHPCMS关闭搜索关键字分词功能?</p>
<p>
用记事本打开 \phpcms\modules\search\index.php 大概在78行能够找到下面的代码:<br>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode3">
$segment_q = $segment-&gt;get_keyword($segment-&gt;split_result($q));</div>
<p>
 </p>
<p>
注释掉这行代码就能取消分词功能。</p>
<p>
网上搜集了些资料,用的是其他办法,我没尝试过,仅作为记录<br>
第一个文件:phpcms\modules\search\index.php<br>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode4">
//如果分词结果为空<br>
if(!empty($segment_q)) {<br>
$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $sql_time AND `data` like '%$q%'";//2014.1.13 by: mosell 不使用分词功能了<br><br>
//$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $sql_time AND MATCH (`data`) AGAINST ('$segment_q' IN BOOLEAN MODE)";<br>
} else {<br>
$sql = "`siteid`= '$siteid' AND `typeid` = '$typeid' $sql_time AND `data` like '%$q%'";<br>
}</div>
<p>
<br><span>还有以上修改大概是在第80行左右。</span></p>
<p>
 </p>
<p>
 </p>
<div>

<p>
代码如下:</p>
</div>
<div id="phpcode5">
$datatest=array();//2014.1.13 by: mosell //用于显示搜索结果列表<br>
$datatest=$data;//2014.1.13 by: mosell //用于显示搜索结果列</div>
<p>
 </p>
<p>
<br>
以上大概在$execute_time = execute_time();$pages = isset($pages) ? $pages : '';这两句的上面,大概在第190多行吧<br>
第二个文件:phpcms\templates\模板文件夹\search\list.html<br>
把{loop $data $i $r}  改成  {loop $datatest $i $r}<br>
大概就是这样了,放这里免得忘记了。</p>
頁: [1]
查看完整版本: PHPCMS取消搜索时的分词功能的方法