分类目录归档:搜索引擎

scws 中文分词、xunsearch 搜索引擎等

迫不及待发布 xunsearch-1.4.6 正式稳定版

这一周多以来,努力的调试和测试,终于消除了迄今发现的所有异常退出、死锁、内存泄露等BUG,因此迫不及待地在今天发布 xunsearch-1.4.6 正式稳定版,以便让大家立即享受最畅快稳定的 xunsearch 搜索。

最近版本发布有点快,带来不便甚感抱歉,但这次真的是稳定下来了。在此强烈强烈地建议所有用户升级到这个最新稳定版!!

Xunsearch 是免费开源的专业全文检索解决方案,旨在帮助一般开发者针对既有的海量数据,快速而方便地建立自己的全文搜索引擎。全文检索可以帮助您降低服务器搜索负荷、极大程度的提高​​搜索速度和用户体验。

官方网站:http://www.xunsearch.com

Snip20130321_2

再次修订 xunsearch-1.4.5-dev 解决内存 BUG

再次深刻体会用 C 的可怕之处了,不过纠错过程也是快乐有趣的。这次用一个 xunsearch 用户访问压力较大,数据也较多,升级到最新的 1.4.4 后仍然还会出现内存 BUG,无奈之下他采用定时重启的办法先避开。

感谢用户信任把 ssh/root 发给我,这个周末我仔细跟踪追查,辅助 gdb, core 文件等手段,再次找到3-4处存在的内存隐患,并重新修改了线程取消的处理行为,对待用户更为友好。

至此,问题全部解决,再观望一下。即将发布 1.4.5,这阵子给 xunsearch 用户们带来频繁升级不便之处敬请谅解啊,但确实能安心解决问题。

PS:Linux 上的多线程被取消时,如果不是常规的取消点而是阻塞的系统调用,居然是直接 abort() ……

1.4.5-dev 开发版下载地址:http://www.xunsearch.com/download/xunsearch-full-dev.tar.bz2

xunsearch-1.4.3 中文搜索,大幅提升扛压能力

非常开心能在今天发布 xunsearch-1.4.3 正式稳定版,这是一个 bugfix 版本。

上个版本很大程度解决了死锁问题,但用户陆续反应仍然会出现进程假死的问题。在多名网友用户的热心配合和反馈下和我们的不断努力下,做了多项改进和调整,加强了多线程下的锁机制。经过高强度的多次压力测试,不再出现任何死锁的情况。

强列建议所有的 xunsearch 用户升级使用这个最新的稳定版本!!!

主要更新如下:

1. 加强 scws_fork 在多线程下的锁机制
2. 再度完善搜索线程池大压力下的死锁问题(感谢几位热心用户的配合反馈)
3. 美化 util.SearchSkel 生成的搜索骨架效果(采用 bootstrap)
4. 加入 Yii 扩展的包装代码,位于 sdk/php/wrapper/yii-ext/

官方网站:http://www.xunsearch.com
下载地址:http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
代码仓库:https://github.com/hightman/xunsearch
修改日志:https://github.com/hightman/xunsearch/commits/1.4.3
CHM手册:http://www.xunsearch.com/download/xs_php_manual.chm

Xunsearch 是免费开源的专业全文检索解决方案,旨在帮助一般开发者针对既有的海量数据,快速而方便地建立自己的全文搜索引擎。全文检索可以帮助您降低服务器搜索负荷、极大程度的提高搜索速度和用户体验。

高性能:后端是采用 C/C++ 开发多线程服务端,索引设计基于 Xapian 和 scws 中文分词。单库最多支持 40 亿条数据,在 5 亿网页大约 1.5TB 的数据中检索时间不超过 1 秒(非缓存)。

简单易用:前端是使用脚本语言编写的开发工具 (SDK),目前仅支持 PHP 语言。API 简单清晰,开发难度极低,提供全中文的示例代码、文档、辅助脚本工具等。

全功能:除支持基础的自定义分词、字段检索、布尔搜索外,还直接支持用户急需的相关搜索、拼音搜索、搜索建议等专业功能。

DEMO 截图:

 

scws 主页迁移并将代码托管到 github

SCWS新主页地址:http://www.xunsearch.com/scws/
GITHUB托管地址:https://github.com/hightman/scws/(很遗憾由于以前的更新不规范也包含了大量无用的文件故抛弃了旧有的 cvs 日志)
SCWS 新论坛:http://bbs.xunsearch.com/forumdisplay.php?fid=8(用户未转移,贴子全部保留)

scws-1.2.0 发布,支持 PHP5.4 新增用于多线程的 scws_fork()

2012-3-29: SCWS-1.2.0 Released.

1) 修改 php 扩展代码以兼容支持 php 5.4.x
2) 修正 php 扩展中 scws_get_tops 的 limit 参数不允许少于 10 的问题
3) libscws 增加 scws_fork() 从既有的 scws 实例产生分支并共享词典/规则集,主要用于多线程开发。
4) 新增部分版本的 win32 的 dll 扩展,详见下载页面

最新下载地址:http://www.xunsearch.com/scws/download.php
演示地址:http://www.xunsearch.com/scws/demo.php

[patch] php-scws 扩展在 5.4.x 下的编译兼容补丁

近期 php5.4.x 已经正式发布,已有网友在使用并汇报说 scws 的 PHP 扩展无法编译通过。

刚看了一下,因为 5.4.x 起 php 移除了 safe_mode 导致一些代码错误不通过编译,简单修改补丁如下,请大家先手动修改一下,稍后 scws-1.1.10 发布时会同步解决,并推出 5.4 的 win32 dll 文件。

Index: php_scws.c
===================================================================
RCS file: /home/cvsroot/scws/phpext/php_scws.c,v
retrieving revision 1.13
diff -c -r1.13 php_scws.c
*** php_scws.c 23 Dec 2011 07:05:26 -0000 1.13
--- php_scws.c 5 Mar 2012 03:32:46 -0000
***************
*** 359,368 ****
--- 359,370 ----
if (!(fullpath = expand_filepath(filepath, NULL TSRMLS_CC)))
RETURN_FALSE;

+ #if PHP_API_VERSION < 20100412
if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
efree(fullpath);
RETURN_FALSE;
}
+ #endif

if (php_check_open_basedir(fullpath TSRMLS_CC)) {
efree(fullpath);
***************
*** 408,417 ****
--- 410,421 ----
if (!(fullpath = expand_filepath(filepath, NULL TSRMLS_CC)))
RETURN_FALSE;

+ #if PHP_API_VERSION < 20100412
if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
efree(fullpath);
RETURN_FALSE;
}
+ #endif

if (php_check_open_basedir(fullpath TSRMLS_CC)) {
efree(fullpath);
***************
*** 456,465 ****
--- 460,471 ----
if (!(fullpath = expand_filepath(filepath, NULL TSRMLS_CC)))
RETURN_FALSE;

+ #if PHP_API_VERSION < 20100412
if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
efree(fullpath);
RETURN_FALSE;
}
+ #endif

if (php_check_open_basedir(fullpath TSRMLS_CC)) {
efree(fullpath);

scws-1.1.9 发布,明确采用 BSD 协议;改进复合分词修正BUG等

2011-12-26: SCWS-1.1.9 Released.

1) 明确使用开源协议 New BSD License 发布新版本
2) 深度优化复合分词中的 SCWS_MULTISHORT 选项,更为合理有效,符合全文检索的需求
3) 测试脚本自动加载当前目录下的 dict_user.txt 文本词典
4) 修正 scws.c 中 __PARSE_XATTR__ 宏的 BUG 导致 scws_get_tops 和 scws_get_words 的 xattr 参数工作不正常的问题
5) 移除 scws.c 中关于 jabberd2s10 的注释,已不包含它的代码
6) 为独立使用的 .h 文件添加 C++ 的 extern “C” 标记以便直接使用:xdb.h,xdict.h,xtree.h,pool.h,darray.h

最新下载地址:http://www.xunsearch.com/scws/download.php
演示地址:http://www.xunsearch.com/scws/demo.php

xunsearch-1.0.0 正式版 (基于xapian/scws/php的开源中文全文搜索引擎)

经过 2 周如火如荼的测试和修正,很高兴如期发布 xunsearch-1.0.0 正式稳定版,这也是 xunsearch 的第一个正式版本。

Xunsearch 是免费开源的专业全文检索解决方案,旨在帮助一般开发者针对既有的海量数据,快速而方便地建立自己的全文搜索引擎。全文检索可以帮助您降低服务器搜索负荷、极大程度的提高搜索速度和用户体验。

高性能:后端是采用 C/C++ 开发多线程服务端,索引设计基于 Xapian 和 scws 中文分词。单库最多支持 40 亿条数据,在 5 亿网页大约 1.5TB 的数据中检索时间不超过 1 秒(非缓存)。

简单易用:前端是使用脚本语言编写的开发工具 (SDK),目前仅支持 PHP 语言。API 简单清晰,开发难度极低,提供全中文的示例代码、文档、辅助脚本工具等。

全功能:除支持基础的自定义分词、字段检索、布尔搜索外,还直接支持用户急需的相关搜索、拼音搜索、搜索建议等专业功能。

官方网站:http://www.xunsearch.com/
下载地址:http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
代码仓库:https://github.com/hightman/xunsearch
修改日志:https://github.com/hightman/xunsearch/commits/1.0.0