使用框架:slightphp

目录结构:大致不严格的分为三部分(search1.0包含C层和V层;search2.0包含框架代码和S层、M层;search2.0_config)

注意:由于该项目的重写规则在 Apache上 不太友好。当前建议在搭建在nginx上

Controller                控制器目录

Lib                      类库文件夹

Comm.class.php

errorCode.php          error code代码 说明

PKCS7Encoder.php      基于PKCS7算法的加解密接口

SHA1 class           计算公众平台的消息签名接口

class lib_weixinfunc    供微信使用的公用方法

class lib_wxBizMsgCrypt  对公众平台发送给公众账号的消息

class lib_wxServer      微信相关方法

class XMLParse    提取消息格式中的密文及生成回复消息

Templates                模板文件

Templates_c              模板解析文件

Xunsearch-sdk          讯搜

.htaccess          Apache重写

.project

Article。xml

Cli.php             cli入口

Cs.php            class CS

Global.php         必要的路径配置

Index.php          搜索站点入口

下面文件没用

Conf

Core                app应用文件夹

Lib               公用类库

Coinapi.class.php     招财币接口

Comm.class.php

Ds.class.php         gearman服务器?

Homesso.class.php    与会员中心交互

Index.class.php       更新索引

User.class.php

Xsindex.class.php     更新迅搜索引类

Model            app M层

Service           app S层

Xunsearch-sdk       讯搜

Db                好像没什么用

Hooks

Locks

Pecl

Plugins            框架核心代码

slightPHP.php       框架入口

重写规则:

rewrite ^/(assets\/search\/(css|js))(.*\.(css|js))   /min/index.php?b=$1&f=$4 last;

rewrite ^/(.+?)$ /index.php?PATH_INFO=controller/$1 last;

新建、更新索引:

Url:s.3158.nginx/index/id.html?type=project&id=100

Project为实例名称。Id为项目id

添加、更新索引程序流程图:

1、Search1.0/controller/index.page.php  controller_index->pageId() :return (int)(core_lib_index::$type($id));

2、Search2.0/core/lib/index.class.php  core_lib_index->project($projectids,$path='') {

$solr = new SSolr(PROJECT_SOLR_IP,PROJECT_SOLR_PORT,$path); //实例化project solr实例

$part = new Apache_Solr_Document();// 实例化solr字段相关类

$documents = $part->addField() //构建索引字段

$solr->addDocuments($documents);//添加

$solr->commit();//这一步的大致如下:$rawPost = '<commit expungeDeletes="' . $expungeValue . '" waitSearcher="' . $searcherValue . '" />';return $this->_sendRawPost($this->_updateUrl, $rawPost, $timeout);

}

2中调用的方法:

Search2.0/plugins/  Ssolr->addDocuments() :(1)拼接出xml格式$rawPost;

(2) $this->add($rawPost);-->return $this->_sendRawPost($this->_updateUrl, $rawPost);

protected function _sendRawPost($url, $rawPost, $timeout = FALSE, $contentType = 'text/xml; charset=UTF-8')

{

$httpTransport = $this->getHttpTransport();//实例化HTTP请求

$httpResponse = $httpTransport->performPostRequest($url, $rawPost, $contentType, $timeout);

//HTTP返回结果

$solrResponse = new Apache_Solr_Response($httpResponse, $this->_createDocuments, $this->_collapseSingleValueArrays);//处理HTTP返回结果

if ($solrResponse->getHttpStatus() != 200)

{

throw new Apache_Solr_HttpTransportException($solrResponse);

}

return $solrResponse;

}

用到的相关表:

$mdl_project = SModel::init('core_model_aiapp_project');

$projects = $mdl_project->select($condition)->items;

表aiapp_project

搜索流程: (例:搜索项目)

http://s.3158.nginx/main/project.html?kw=排骨   本地host(s.3158.nginx)

经入口调用的控制器方法:

Search/controller/main.page.php  class controller_main->pageProject()

1、$tcprojectid = $this->jpprojrct();//获取 精品项目

$solr_q //搜索条件

$solr_params  //solr请求所带的参数。参数详解参照网上

2、$rs = $this->_solr->search($solr_q, $offset, $limit, $solr_params); //发送请求,返回solr搜索结果

3、$redis = new SRedis('zhaocaimao'); //实例化redis

$topicarr[$v['projectid']] = $redis->hGet($this->_redisname, $v['projectid']);  //获取问答相关链接

4、渲染模板

slightphp框架相关推荐

  1. 2014年最热门的国人开发开源软件TOP100

    2014年最热门的国人开发开源软件TOP100 不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多 ...

  2. 热门的国人开发开源项目

    来源:开源中国 1. JFinal JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展.Restful.在拥有 ...

  3. 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  4. 2014年国人开发的最热门的开源软件TOP 100

    摘要:不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可. ...

  5. 2014 年最热门的国人开发开源软件 TOP 100

    不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必.做开源中国六年有余,这六年时间国内的开源蓬勃发展,从一开始的使用到贡献,到推出自己很多的开源软件,而且还有很多软件被国外的认可.中国是 ...

  6. 开源软件 TOP 100

    2014 年最热门的国人开发开源软件 TOP 100  电脑网络  小K  1年前 (2015-01-20)  1378浏览  0评论 不知道从什么时候开始,很多一说起国产好像就非常愤慨,其实大可不必 ...

  7. 中文热门开源项目Top100,你知道多少?

    http://www.open-open.com/news/view/74dbf4/ http://www.open-open.com/news/view/74dbf4/ http://www.ope ...

  8. 2014 top100

    下面是 TOP 100 的软件列表: 1. JFinal JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其核心设计目标是开发迅速.代码量少.学习简单.功能强大.轻量级.易扩展. ...

  9. 国人开发开源软件TOP100

    TOP 100 的国产开源软件列表: (里面有cocos2d-x.pomelo.CrossApp等...) 1. JFinal JFinal 是基于 Java 语言的极速 WEB + ORM 框架,其 ...

最新文章

  1. 开源MANO软件盘点
  2. python学习笔记三 pickle序列化
  3. TabControl控件和TabPage的使用
  4. ETL作业调度软件TASKCTL自定义扩展作业类型插件安装
  5. 确认过眼神,你是ApacheWay的人 | COSCon‘18 特辑
  6. 蓝桥杯-长草-代码(BFS)
  7. leetcode117. 填充每个节点的下一个右侧节点指针 II
  8. 【Win】使用L2TP出现809错误
  9. [转载] 利用python制作简单计算器
  10. 修改CDH的HostName和IP
  11. android adb复制粘贴工具
  12. 微信也QQ服务器,妄想山海QQ区还是微信区好 平民服务器选择推荐
  13. session和cookie的内部原理
  14. qq里面发送图片显示服务器被拒绝,如何解决qq无法发送图片的问题
  15. ACM复习(53)17229 Lry,你除了2还是2
  16. 局域网查看工具V1.60.exe与局域网助手(LanHelper)的试用
  17. 基于单片机智能心率检测设备设计方案
  18. scp命令传输出现ssh: Could not resolve hostname错误
  19. 处理window11无法连接网络共享打印机
  20. 8、【循环练习-蜗牛爬井】井里有一只蜗牛,他白天往上爬5米,晚上掉3.5 米,井深56.7米,计算蜗牛需要多少天才能从井底到爬出来。

热门文章

  1. 潭州课堂25班:Ph201805201 django 项目 第十七课 用户登录,登出实现 (课堂笔记)...
  2. linux栈溢出检测原理,操作系统栈溢出检测之ucosII篇
  3. css设置div从下到上显示,科技常识:css制作从下往上逐渐显示的div
  4. 破解企业QQ对个人QQ登录限制 不能同时登录的问题
  5. Synchronized锁升级、降级
  6. 商务管理类毕业论文文献都有哪些?
  7. 练习:任意多行字条串拆分数值求和冒泡排序两数的最大公约数和最大公倍数
  8. vue项目中实现视频播放
  9. Android实现烟雾监控应用,基于Android的室内监控系统的研究与实现
  10. 【流量代理】代理模式