架构说明

Xunsearch 架构简图

Xunsearch 分为后端服务和前端开发包两大部分,这两个部分允许部署在不同服务器中。

后端是采用 C/C++ 开发的守护进程,包括索引服务器(xs-indexd)、搜索服务器(xs-searchd)。 索引服务器用于集中处理索引变动,并自动调用工具程序优化和更新数据库;搜索服务器 借鉴了 nginx 的作法,使用进程、线程混合工作模式处理高并发的搜索请求。

通常在二次开发时并不需要去关心后端的实现,只要在我们提供的前端开发包基础上开发即可。

前端开发包通常使用脚本语言编写,负责协商前端调用与后端服务通讯,我们称之为 SDK 开发包。理论上支持各种包含 socket 通讯实现的脚本语言,但目前我们只提供了 PHP 语言,以后再陆续考虑和开发其它语言。非常欢迎有能力有意愿的朋友提供、贡献其它语种的代码。

下面是我们用字符直接制作的一张架构简图。

              ==============================
              |   Your Search Application  |
              ==============================
                  /\                /\
................ /||\ ............ /||\ ....................
:                 ||                ||                     :
:             +-----------------------------+              :
:             |  [PHP]  | other lang (TODO) |              :
:             |-----------------------------|              :
:             |   SDK: (xunsearch devkit)   |              :
:             +-----------------------------+              :
:                 /                   \                    :
:                /                     \                   :
:    +-----------------+          +-------------------+    : 
:    |  Index-server   |          |   Search-server   |    :
:    |-----------------|          |-------------------|    : 
:    |   xs-indexd     |          |    xs-searchd     |    :
:    |   xs-import     |          |     1*master      |    :
:    |   xs-logging    |          | N*worker(M*thread)|    :
:    +-----------------+          +-------------------+    :
:                |                       |                 :
:                |                       |                 :
:             +-----------------------------+              :
:             |     Xapian-core + scws      |              :
:             +-----------------------------+              :  
:                |          |            |                 :
:      +------------+  +--------+  +---------------+       :
:      | Local Disk |  | Memory |  | Remote socket |       :
:      +------------+  +--------+  +---------------+       :
:                                                          :
...................... Xun Search ..........................

$Id$