【Discuz】积分机制实现解析
1、积分设置
在论坛 管理界面》全局》积分设置 里进行积分项目和积分规则的设置。可以用扩展积分来实现诸如热情、威望、贡献、论坛币等论坛激励机制,可设定扩展积分之间的兑换比例,可设置发帖、回复、加精、上传附件等操作需要增加的积分及下载附件等操作需要扣除的积分,并可对不同版面设定不同的积分规则,可谓是灵活自由。
如下图所示,有八个扩展积分可供设置,可用积分名称来命名你希望的名字,如热情、威望、贡献、论坛币等。
1、积分设置
在论坛 管理界面》全局》积分设置 里进行积分项目和积分规则的设置。可以用扩展积分来实现诸如热情、威望、贡献、论坛币等论坛激励机制,可设定扩展积分之间的兑换比例,可设置发帖、回复、加精、上传附件等操作需要增加的积分及下载附件等操作需要扣除的积分,并可对不同版面设定不同的积分规则,可谓是灵活自由。
如下图所示,有八个扩展积分可供设置,可用积分名称来命名你希望的名字,如热情、威望、贡献、论坛币等。
JSP实在是不熟,让Session搞了一两个小时。原来测试可以用的系统,挪到另一台服务器上就不行。折腾了一阵后,觉得可能是JSP相关的服务器配置不同导致的。
报错信息如下:
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 6 in the jsp file: /default.jsp
Generated servlet error:
The method setAttribute(String, Object) in the type HttpSession is not applicable for the arguments (String, long)
利用一条SQL语句从数据库Table表中随机获取N条记录,各数据库的SQL语句略有不同,如下:
1、MySql
Select * From TABLE Order By Rand() Limit N
以上代码效率不高,自己对1000条数据表随机取10条的测试结果为耗时0.125s,有网友推荐改为以下代码效率有大幅提高,耗时为0.005s,不过结果是随机从某个位置开始取N条记录,而不是随机取N条记录,略有差异。详细说明见mysql使用rand随机查询记录效率测试。
SELECT * FROM `TABLE` a join (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `TABLE`)-(SELECT MIN(id) FROM `TABLE`))+(SELECT MIN(id) FROM `TABLE`)) AS id) AS b WHERE a.id >= b.id ORDER BY a.id LIMIT N;
2、SQL Server
Select TOP N * From TABLE Order By NewID()
以下为Unicode编码清单,具体字符的编码表请下载Unicode编码表
1. 【0020-007F】 Basic Latin 基本拉丁字母
2. 【00A0-00FF】 Latin-1 Supplement 拉丁字母补充-1
3. 【0100-017F】 Latin Extended-A 拉丁字母扩充-A
4. 【0180-023F】 Latin Extended-B 拉丁字母扩充-B
5. 【0250-02AF】 IPA Extensions 国际音标扩充
中文分词是做好中文内容检索、文本分析的基础,主要应用于搜索引擎与数据挖掘领域。中文是以词为基本语素单位,而词与词之间并不像英语一样有空格来分隔,因而中文分词的难点在于如何准确而又快速地进行分词。以下介绍4款开源中文分词系统。
1、ICTCLAS – 全球最受欢迎的汉语分词系统
一个SQL查询问题,表T有字段a、字段b、字段c等多个字段,其中中字段a在不同数据行中有重复;要求获取多个数据行,每个不同的字段a值对应一个数据行,每个数据行为包含相同字段a值的数据行取字段b值最小的一行)。
举例来说,从文章评论表获取每篇文章的第一条评论,显示需要只取从第2条开始的前2条,表comment内容如下
源于一个遇到的实际问题,抽象一下,表述问题如下:
有两张表main和attachment,其中attachment表的mianid字段对应到main表的mainid字段,如下
main表
| mainid | submittime |
|---|---|
| 1 | 2010-1-3 |
| 2 | 2010-1-5 |
| 3 | 2010-1-7 |