<!--<?php
include_once PrintEot('left');
if ($adminitem == 'msphinx') {
print <<<EOT
-->
<div class="nav3 mb10">
    <ul class="cc">
        <li class="current"><a href="$admin_file?adminjob=advanced&adminitem=msphinx">Sphinx全文索引配置</a></li>
        <li><a href="$admin_file?adminjob=advanced&adminitem=mmemcache">Memcache 缓存配置</a></li>
        <li><a href="$admin_file?adminjob=advanced&adminitem=distribute">分布式缓存配置</a></li>
    </ul>
</div>
<div class="admin_info mb10">
    <h3 class="h1">介绍说明</h3>
    <div class="legend">Sphinx是一个基于SQL的全文检索引擎，可以结合MySQL,PostgreSQL做全文搜索，它可以提供比数据库本身更专业的搜索功能，
 使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口，如PHP,Python,Perl,Ruby等，同时为MySQL也设计了一个存储引擎插件。<a href="http://www.sphinxsearch.com/" target="_blank">http://www.sphinxsearch.com/</a>
    </div>
</div>
<h2 class="h1">全文索引服务器配置</h2>
<form action="{$baseUrl}" method="post" >
<input type="hidden" name="step" value="2" />
<div class="admin_table mb10">
<table width="100%" cellspacing="0" cellpadding="0">
	<tr class="tr1 vt">
		<td class="td1">全文索引</td>
		<td class="td2">
        	<ul class="list_A list_80">
            	<li><input type="radio" name="isopen" value="1" {$isopenCheck[1]}/>开启</li>
                <li><input type="radio" name="isopen" value="0" {$isopenCheck[0]}/>关闭</li>
            </ul>
        </td>
	</tr>
	<tr class="tr1 vt">
		<td class="td1">服务器主机地址</td>
		<td class="td2"><input type="text" name="host" value="{$configure[host]}" id="host"  class="input input_wa" /></td>
	</tr>
	<tr class="tr1 vt">
		<td class="td1">服务器端口号</td>
		<td class="td2"><input type="text" name="port" value="{$configure[port]}" id="port"  class="input input_wa" /></td>
	</tr>
</table>
</div>
<h2 class="h1 cc"><span class="fl mr5">全文索引高级配置</span><i onclick="sphinx.show();" class="hide hide_a">展开</i></h2>
<div id="sphinxAdvanced" style="display:none;">
        <div class="admin_table">
        <table width="100%" cellspacing="0" cellpadding="0">
			<tr class="tr1 vt">
				<td class="td2" colspan="2">
					 <p class="mb10">全文索引高级配置将直接影响查询方式和搜索结果，建议使用默认配置，如果需要修改，请严格参考官方文档。</p>
            <p>一，设置全文索引评分模式</p>
            <ol class="mb10">
                <li>SPH_RANK_PROXIMITY_BM25， 默认模式，同时使用词组评分和BM25评分，并且将二者结合。[默认]</li>
                <li>SPH_RANK_BM25，统计相关度计算模式，仅使用BM25评分计算（与大多数全文检索引擎相同）。这个模式比较快，但是可能使包含多个词的查询的结果质量下降。</li>
                <li>SPH_RANK_NONE，禁用评分的模式，这是最快的模式。实际上这种模式与布尔搜索相同。所有的匹配项都被赋予权重1。</li>
            </ol>
            <p>二，设置全文索引分组属性</p>
            <ol class="mb10">
                <li>SPH_GROUPBY_DAY，从时间戳中按YYYYMMDD格式抽取年、月、日。</li>
                <li>SPH_GROUPBY_WEEK，从时间戳中按YYYYNNN格式抽取年份和指定周数（自年初计起）的第一天。</li>
                <li>SPH_GROUPBY_MONTH，从时间戳中按YYYYMM格式抽取月份。</li>
                <li>SPH_GROUPBY_YEAR，从时间戳中按YYYY格式抽取年份。</li>
                <li>SPH_GROUPBY_ATTR，使用属性值自身进行分组。[默认]</li>
            </ol>
            <p>三，自定义索引名称<br />
    主要是有于创建自定义的索引名称，可用于快速切换索引（如备份索引）等，支持帖子标题，标题加内容，回复索引名称自定义<br />
    更详细的介绍与说明请参考全文索引官方文档</p>
				</td>
			</tr>

            <tr class="tr1 vt">
                <td class="td1">分词模式选择</td>
                <td class="td2">
		        	<ul class="list_A list_80" id="ws_mode">
						<li><input type="radio" value="1" name="wordsegment_mode" {$wordsegment_mode[1]}>一元分词</li>
						<li><input type="radio" value="2" name="wordsegment_mode" {$wordsegment_mode[2]}>二元分词</li>
		            </ul>
	            </td>
            </tr>						
            <tr class="tr1 vt">
                <td class="td1">实时操作记录(开启后将影响速度，请谨慎选择)</td>
                <td class="td2">
					<ul class="list_A list_120" id="syn_data_id">
						<li><input type="checkbox" value="sync_threads" name="sync_data[]" {$sync_data['sync_threads']} /> 帖子</li>
						<li><input type="checkbox" value="sync_posts" name="sync_data[]" {$sync_data['sync_posts']} /> 回复</li>
						<li><input type="checkbox" value="sync_diarys" name="sync_data[]" {$sync_data['sync_diarys']} /> 日志</li>
						<li><input type="checkbox" value="sync_members" name="sync_data[]" {$sync_data['sync_members']} /> 用户</li>
					</ul>
	            </td>
            </tr>	            
            <tr class="tr1 vt">
                <td class="td1">设置全文索引评分模式</td>
                <td class="td2">
                    <select name="rank" id="rank" class="select_wa">
                        <option value="SPH_RANK_PROXIMITY_BM25" {$rankSelects[1]}>SPH_RANK_PROXIMITY_BM25</option>
                        <option value="SPH_RANK_BM25" {$rankSelects[2]}>SPH_RANK_BM25</option>
                        <option value="SPH_RANK_NONE" {$rankSelects[3]}>SPH_RANK_NONE</option>
                    </select>
                </td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">设置全文索引分组属性</td>
                <td class="td2">
                    <select name="group" id="group" class="select_wa">
                        <option value="SPH_GROUPBY_DAY" {$groupSelects[1]}>SPH_GROUPBY_DAY</option>
                        <option value="SPH_GROUPBY_WEEK" {$groupSelects[2]}>SPH_GROUPBY_WEEK</option>
                        <option value="SPH_GROUPBY_MONTH" {$groupSelects[3]}>SPH_GROUPBY_MONTH</option>
                        <option value="SPH_GROUPBY_YEAR" {$groupSelects[4]}>SPH_GROUPBY_YEAR</option>
                        <option value="SPH_GROUPBY_ATTR" {$groupSelects[5]}>SPH_GROUPBY_ATTR</option>
                    </select>
                </td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">[帖子索引]名称</td>
                <td class="td2"><input type="text" name="tindex" value="$configure[tindex]"  id="tindex" class="input input_wa" /></td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">[帖子+内容索引]名称 </td>
                <td class="td2"><input type="text" name="tcindex" value="$configure[tcindex]"  id="tcindex" class="input input_wa" /></td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">[回复索引]名称 </td>
                <td class="td2"><input type="text" name="pindex" value="$configure[pindex]"  id="pindex" class="input input_wa" /></td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">[日志主题索引]名称 </td>
                <td class="td2"><input type="text" name="dindex" value="$configure[dindex]"  id="dindex" class="input input_wa" /></td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">[日志主题+内容索引]名称 </td>
                <td class="td2"><input type="text" name="dcindex" value="$configure[dcindex]"  id="dcindex" class="input input_wa" /></td>
            </tr>
            <tr class="tr1 vt">
                <td class="td1">[文章索引]名称 </td>
                <td class="td2"><input type="text" name="cmsindex" value="$configure[cmsindex]"  id="cmsindex" class="input input_wa" /></td>
            </tr> 
            <tr class="tr1 vt">
                <td class="td1">[新鲜事索引]名称 </td>
                <td class="td2"><input type="text" name="weiboindex" value="$configure[weiboindex]"  id="weiboindex" class="input input_wa" /></td>
            </tr>
        </table>
    </div>
</div>
<div class="tac p10">
    <span class="bt"><span><button type="button" name="test" onclick="pingTest();">测 试</button></span></span>
    <span class="btn"><span><button type="submit" name="save">保 存</button></span></span>
	<span class="bt"><span><button type="button" name="re" onclick="sphinx.recover();" style="display:none;" id="recover">默认设置</button></span></span>
</div>
</form>
<!--
EOT;
}elseif($adminitem == 'mmemcache'){print <<<EOT
-->
<div class="nav3 mb10">
    <ul class="cc">
        <li><a href="$admin_file?adminjob=advanced&adminitem=msphinx">Sphinx全文索引配置</a></li>
        <li class="current"><a href="$admin_file?adminjob=advanced&adminitem=mmemcache">Memcache 缓存配置</a></li>
        <li><a href="$admin_file?adminjob=advanced&adminitem=distribute">分布式缓存配置</a></li>
    </ul>
</div>
<div class="admin_info mb10">
<h3 class="h1">介绍说明</h3>
    <div class="legend">
        memcached是以LiveJournal旗下Danga Interactive公司的Brad Fitzpatric为首开发的一款开源软件。
        现在已成为从多服务中提高Web应用扩展性的重要因素。许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。
        但随着数据量的增大、访问的集中，就会出现RDBMS的负担加重、数据库响应恶化、网站显示延迟等重大影响。memcached是高性能的分布式内存缓存服务器。
        一般的使用目的是，通过缓存数据库查询结果，减少数据库访问次数，以提高动态Web应用的速度、提高可扩展性。
        Memcache官方网站：<a href="http://www.danga.com/memcached" target="_blank">http://www.danga.com/memcached</a> 。
    </div>
</div>
<h2 class="h1">Memcache 缓存配置</h2>
<form action="{$baseUrl}" method="post" >
<input type="hidden" name="step" value="2" />
<!--
EOT;
if(!$mcache->exists()){print <<<EOT
-->
	<div class="p10">服务器环境不支持Memcache客户端,请安装</div>
<!--
EOT;
} else {print <<<EOT
-->
<div class="admin_table">
<table width="100%" cellspacing="0" cellpadding="0">
	<tr class="tr1 vt">
		<td class="td1">Memcache</td>
		<td class="td2">
        	<ul class="list_A list_80">
            	<li><input type="radio" name="isopen" value="1" {$isopenCheck[1]}/>开启</li>
				<li><input type="radio" name="isopen" value="0" {$isopenCheck[0]}/>关闭</li>
            </ul>
		</td>
	</tr>
	<tr class="tr1 vt">
		<td class="td1">服务器主机地址</td>
		<td class="td2"><input type="text" name="host" value="{$configure[host]}" id="host" class="input input_wa" /></td>
	</tr>
	<tr class="tr1 vt">
		<td class="td1">服务器端口号</td>
		<td class="td2"><input type="text" name="port" value="{$configure[port]}" id="port" class="input input_wa" /></td>
	</tr>
	<tr class="tr1 vt">
		<td class="td1">唯一键前缀</td>
		<td class="td2"><input type="text" name="hash" value="{$configure[hash]}" id="hash" class="input input_wa" /></td>
	</tr>	
</table>
</div>
<div class="tac p10">
    <span class="bt"><span><button type="button" name="test" onclick="pingTest();">测 试</button></span></span>
    <span class="btn"><span><button type="submit" name="save">保 存</button></span></span>
</div>
<!--
EOT;
}print <<<EOT
-->
</form>
<!--
EOT;
}elseif($adminitem == 'distribute'){print <<<EOT
-->
<div class="nav3 mb10">
    <ul class="cc">
        <li><a href="$admin_file?adminjob=advanced&adminitem=msphinx">Sphinx全文索引配置</a></li>
        <li><a href="$admin_file?adminjob=advanced&adminitem=mmemcache">Memcache 缓存配置</a></li>
        <li class="current"><a href="$admin_file?adminjob=advanced&adminitem=distribute">分布式缓存配置</a></li>
    </ul>
</div>
<div class="admin_info mb10">
    <h3 class="h1">介绍说明</h3>
    <div class="legend">分布式缓存是指将集群内的缓存文件实现共享，使大量单独的物理机器能共享同一缓存数据，实现前端机器的无限扩展。<br />
<font color="red">注意：开启分布式缓存会加大系统负载，仅当网站有多台服务器时确实需要分布式缓存的情况下才开启，否则都建议关闭！</font></div>
</div>
<h2 class="h1">分布式缓存配置</h2>
<form action="{$baseUrl}" method="post" >
<input type="hidden" name="step" value="2" />
<div class="admin_table mb10">
<table width="100%" cellspacing="0" cellpadding="0">
	<tr class="tr1 vt">
		<td class="td1">分布缓存服务</td>
		<td class="td2">
			请自行去除template/admin/advanced.htm中注释开启本服务
			<!-- 
        	<ul class="list_A list_80">
            	<li><input type="radio" name="db_distribute" value="1" {$db_distribute_Y}/>开启</li>
                <li><input type="radio" name="db_distribute" value="0" {$db_distribute_N}/>关闭</li>
            </ul>
             -->
        </td>
	</tr>
</table>
</div>
<div class="tac p10">
    <!--
     <span class="btn"><span><button type="submit" name="save">保 存</button></span></span>
    -->
</div>
</form>
<!--
EOT;
}print <<<EOT
-->
<script type="text/javascript">
function pingTest(){
	var host = getObj("host").value;
	var port = getObj("port").value;
	var data = 'ajax=1&host='+host+'&port='+port;
	sendmsg('{$baseUrl}',data);
}

var sphinx = {

	/*ID选择器*/
	$ : function(id){
		return document.getElementById(id);
	},

	show : function(){
		var obj = this.$("sphinxAdvanced");
		var recover = this.$("recover");
		if(obj.style.display == ""){
			obj.style.display = "none";
			recover.style.display = "none";
		}else{
			obj.style.display = "";
			recover.style.display = "";
		}
	},

	recover : function(){
		this.$("tindex").value = "threadsindex";
		this.$("tcindex").value = "tmsgsindex";
		this.$("pindex").value = "postsindex";
		this.$("dindex").value = "diarysindex";
		this.$("dcindex").value = "diarycontentsindex";
		this.$("cmsindex").value = "cmsindex";
		var ws_mode = this.$("ws_mode").getElementsByTagName("input");
		for(var i=0;i<ws_mode.length;i++){
			ws_mode[i].checked = false;
		}
		ws_mode[0].checked = true;
		var syn_data_id = this.$("syn_data_id").getElementsByTagName("input");
		for(var i=0;i<syn_data_id.length;i++){
			syn_data_id[i].checked = false;
		}		
		var ranks = this.$("rank").getElementsByTagName("option");
		for(var i=0;i<ranks.length;i++){
			if(ranks[i].value == "SPH_RANK_PROXIMITY_BM25" ){
				ranks[i].selected = "selected";
			}else{
				ranks[i].selected = "";
			}
		}
		var groups = this.$("group").getElementsByTagName("option");
		for(var i=0;i<groups.length;i++){
			if(groups[i].value == "SPH_GROUPBY_ATTR" ){
				groups[i].selected = "selected";
			}else{
				groups[i].selected = "";
			}
		}
	}

}
</script>
<!--
EOT;
include_once PrintEot('adminbottom');
?>-->