<!--<?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');
?>-->