纵横搜索问题解决方案集合【2011.12.27更新】
近日,纵横搜索运营团队发现一部分站点接口异常,数据索引停止,请大家参考如下方案进行修复:1、索引进度停止
2、热搜词数量太多溢出的处理办法
3、"请求来源不正确,请返回论坛点击"搜索"链接,获取最新的请求地址"的修改方法
本帖最后由 betaer 于 2012-1-6 10:00 编辑
站点索引停止了,请参考下述方法进行修复
在网站可正常访问的情况下,请首先保证/api/manyou/my.php的正常访问,并且没有任何报错,正确格式可请参照官网 http://www.discuz.net/api/manyou/my.php
如接口文件正常,请修改以下两个文件,然后同步站点信息,次日即可看到索引进度产生变化。
1、把论坛/api/manyou/my.php$polls = SearchHelper::getPollInfo($vtIds);
foreach($polls as $tId => $poll) {
$result['data'][$tId]['pollInfo'] = $poll;
}改为:if ($vtIds) {
$polls = SearchHelper::getPollInfo($vtIds);
foreach($polls as $tId => $poll) {
$result['data'][$tId]['pollInfo'] = $poll;
}
}2、打开/api/manyou/Manyou.phpfunction getPollInfo($tIds) {
$sql = 'SELECT * FROM ' . DB::table('forum_polloption') . ' WHERE tid IN (' . implode(',', $tIds) . ')';改为:function getPollInfo($tIds) {
if (!is_array($tIds) || count($tIds) <= 0) return array();
$sql = 'SELECT * FROM ' . DB::table('forum_polloption') . ' WHERE tid IN (' . implode(',', $tIds) . ')';修复完成后,请同步站点信息。
如果您的站点修复了接口但还是有问题,请在这个帖子跟帖,并说明索引进度停止,会有专人跟进排查。
本帖最后由 betaer 于 2012-1-16 09:54 编辑
热搜词数量太多溢出的处理办法
找到\template\default\common\pubsearchform.htm 中的
<div id="scbar_hot">
<!--{if $_G['setting']['srchhotkeywords']}-->
<strong class="xw1">{lang hot_search}: </strong>
<!--{loop $_G['setting']['srchhotkeywords'] $val}-->
<!--{if $val=trim($val)}-->
<!--{eval $valenc=rawurlencode($val);}-->
<!--{block srchhotkeywords[]}--><a href="search.php?mod=forum&srchtxt=$valenc&formhash={FORMHASH}&searchsubmit=true&source=hotsearch" target="_blank" class="xi2">$val</a><!--{/block}-->
<!--{/if}-->
<!--{/loop}-->
<!--{echo implode('', $srchhotkeywords);}-->
<!--{/if}-->
</div>
改为如下代码即可实现词超出也不会换行。
注:热搜词如希望只显示一行,请将高度控制在30px以内,即 height: 30px;,该区域的宽、高请根据自己情况进行调整。<style type="text/css">
#scbar_hot { padding-left: 8px; width:200px; height: 30px; line-height: 30px; overflow: hidden; }
#scbar_hot strong, #scbar_hot a { float: left; margin-right: 8px; white-space: nowrap; }
</style>
<div id="scbar_hot">
<!--{if $_G['setting']['srchhotkeywords']}-->
<strong class="xw1">{lang hot_search}: </strong>
<!--{loop $_G['setting']['srchhotkeywords'] $val}-->
<!--{if $val=trim($val)}-->
<!--{eval $valenc=rawurlencode($val);}-->
<!--{block srchhotkeywords[]}-->
<!--{if !empty($searchparams)}-->
<a href="$searchparams?q=$valenc&source=hotsearch{$srchotquery}" target="_blank" class="xi2">$val</a>
<!--{else}-->
<a href="search.php?mod=forum&srchtxt=$valenc&formhash={FORMHASH}&searchsubmit=true&source=hotsearch" target="_blank" class="xi2">$val</a>
<!--{/if}-->
<!--{/block}-->
<!--{/if}-->
<!--{/loop}-->
<!--{echo implode('', $srchhotkeywords);}-->
<!--{/if}-->
</div>修改后请更新论坛缓存。
本帖最后由 betaer 于 2012-1-6 10:15 编辑
“请求来源不正确,请返回论坛点击"搜索"链接,获取最新的请求地址” 的修改办法
打了 Discuz! X2 R20111010 & Discuz! X2 R20111221 补丁包的UTF8站点,请按照本方法进行修改:
找到/template/default/common/pubsearchform.htm文件,搜索如下字符串:<!--{eval $srchotquery .= '&' . $key . '=' . $value;}-->将其替换为:<!--{eval $srchotquery .= '&' . $key . '=' . rawurlencode($value);}-->修改完成后,请更新论坛缓存。
本帖最后由 betaer 于 2012-1-10 15:07 编辑
站外调用搜索框时,将搜索结果跳转到如下地址即可:http://www.discuz.net/search.php?mod=curforum&srchtxt=qq请将http://www.discuz.net 改为您的论坛地址 测试
页:
[1]
