YOYO的最新BLOG文章

Sep
17

前几天我说到Zend Framework中lucene的效率非常低,只能做个玩具而已。今天一个朋友找到了一个建立在Javalucene上的一个工具-DBSight,这个工具在建立索引、搜索数据等方面都有非常出色的表现,而且支持和多种数据库的结合,是个很不错的工具。

直接用Zend Frameworklucene搜索数据要花好几秒,而用DBSight却只有十分之几秒或者百分之几秒,可以说在性能上提升了一大截。这套工具是把Java版(原版)的lucene封装了起来,然后通过自己的程序来调用lucene来工作,DBSight集配置、建立、更新和搜索于一身,是个很容易上手的工具。

DBSight是是单独运行在一个服务器上的,默认端口是8080,所以使用的时候需要在服务器上配置相应环境,也就是说它适合于有独立服务器的网站,对于虚拟主机一类的站点就很难使用了,因为绝大多数的ISP都不提供这套工具。

DBSight不是开源的,使用它的特殊功能是需要缴费的(例如自动建索引),不过它免费的功能已经够我们用的了,收费的部分可以通过其他办法来实现,当然如果你确实很喜欢这个工具的话,还是买一套吧,毕竟现在这年头,程序员也不容易,也算你为IT事业尽一份力了:-)
阅读全文 ->

Sep
13

这几天一直在试用Zend Frameworklucene功能,这是Zend Framework最近推出的Java版lucene的PHP改写版。从总体感觉来说,PHP版本的lucene比JAVA版的lucene差的还有很远。

我们可以从Zend Framework的网站上免费获得lucene的php版本,地址是:http://framework.zend.com/download/。在Zend Framework的压缩包里面有很多程序,其中的Search文件夹里面就是lucene的PHP版本,我们也可以把他单独分离出来。在压缩包里面有两个Lucene的演示文件create-index.php和search-index.php,代码如下:
create-index.php:

require_once 'Zend/Feed.php';
require_once 'Zend/Search/Lucene.php';
 
//create the index
$index = new Zend_Search_Lucene('/tmp/feeds_index', true);
 
// index each item
$rss = Zend_Feed::import('http://feeds.feedburner.com/ZendDeveloperZone');
 
foreach ($rss->items as $item) {
$doc = new Zend_Search_Lucene_Document();
 
if ($item->link && $item->title && $item->description) {
 
$link = htmlentities(strip_tags( $item->link() ));
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('link', $link));
 
$title = htmlentities(strip_tags( $item->title() ));
$doc->addField(Zend_Search_Lucene_Field::Text('title', $title));
 
$contents = htmlentities(strip_tags( $item->description() ));
$doc->addField(Zend_Search_Lucene_Field::Text('contents', $contents));
 
echo "Adding {$item->title()}...\n";
$index->addDocument($doc);
}
}
 
$index->commit();

阅读全文 ->