PHP下的CoreSeek實現的搜尋引擎

2021-10-05 18:35:23 字數 2625 閱讀 1799

#

# minimal sphinx configuration sample (clean, ******, functional)

#source main

index main

source delta:main

index delta:main

indexer

searchd

此處的配置採用了增量索引的方式,完成之後還需要及時的更新索引、合併索引,使索引保持同步。增加如下的定時任務配置:

* * * * * /usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/csft.conf main --rotate #更新主索引,每天。

*/10 * * * * /usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/csft.conf delta --rotate #更新增量索引,每10分鐘。

30 * * * * /usr/local/coreseek/bin/indexer --config /usr/local/coreseek/etc/csft.conf --merge main delta --merge-dst-range deleted 0 0 --rotate #合併索引,每天凌晨3點

5、**引用api實現全文索引。sphinxapi.php為coreseek的api檔案,在安裝目錄下複製到程式引用目錄即可,當然也可以直接去編譯sphinx.so的擴充套件到php,一般情況下直接複製api檔案即可。

<?php

require_once

("./search/sphinxapi.php");

$cl=

newsphinxclient()

;$cl

->

setserver

('127.0.0.1'

,9312);

$cl-

>

setconnecttimeout(1

);$cl-

>

setarrayresult

(true);

//$cl->setweights ( array ( 100, 1 ) );

$cl-

>

setmatchmode

(sph_match_all);

$cl-

>

setrankingmode

(sph_rank_wordcount);

$cl-

>

setselect

("*");

$cl-

>

setlimits(0

,1000

,10000,0

);//最大顯示1000條

$cl-

>

setsortmode

("sph_sort_attr_desc");

//$cl->setsortmode ( sph_sort_extended, '@weight desc' );

//$cl->setsortmode ( sph_sort_expr, $sortexpr );

//$cl->setfieldweights(array('title'=>10,'content'=>1));if(

!isset

($_get

['s'])

||empty

($_get

['s'])

)$q1

=addslashes

(htmlspecialchars

(strip_tags

($_get

['s'])

));$q

=iconv

("gb2312"

,"utf-8"

,$q1);

//目前索引的時候coreseek 只支援utf-8編碼,中文資料庫當中gbk儲存的資料直接轉碼,然後用utf8搜尋

$res

=$cl

->

query($q

,"*");

//print_r($res['matches']);if(

isset

($res

['matches'])

&&count

($res

['matches'])

>0)

$idss

=substr

($ids,0

,-1)

;$condition

="nxuh in ("

.$idss

.")"

;//資料庫查詢條件,索引出來的條數直接用整數的ids來替代,大部分場景是不需要全部索引顯示的,比如電子商務系統當中的垂直搜尋引擎就是100頁而已。

$total

=count

($res

['matches'])

;}//echo $condition;

?>

6、目前coreseek只支援到utf8編碼,所以需要在中文索引後進行轉碼才可以檢索。

7、伺服器的安全配置需要自己實現。

Lamp環境下安裝及使用coreseek

開啟linux首先安裝如下依賴包 如果有的話只需要更新 yum y install m4 autoconf automake libtool yum y install gcc gcc c wget yum y install mysql devel執行如下命令 tar xzvf coreseek ...

Coreseek 帶中文分詞的Sphinx

sphinx並不支援中文分詞,也就不支援中文搜尋,coreseek sphinx mmseg 中文分詞演算法 2 解壓後有三個資料夾 csft 3.2.14 sphinx mmseg 3.2.14 中文分詞元件 testpack 介面開發包 2.安裝 1 先安裝mmseg,因為coreseek會用到...

PHP下實現埠復用 劫持

經常看到有朋友問埠復用,我花了乙個晚上寫了一點 本來想做成嗅嘆 的,無奈單執行緒的東西很侷限,而且始終只能得到頭行資料。我想要做成那樣的,對於高手來說,不是困難的事。如果你不懂如何配置,請參照我以前的文章 php sockets初步接觸 win下只要有guest許可權即可用,而且通過配合 windo...