Zend_Search_Lucene创建PHP站内搜索
Zend_Search_Lucene 是一个完全由 PHP 5 编写的通用文本搜索引擎。由于其将索引保存在文件系统中而不需要数据库支持,因此它几乎可以为任何由 PHP 驱动的网站增加搜索能力。Zend_Search_Lucene 支持下列特性:
具有排名功能的搜索——最符合要求的结果出现在最前面
许多强大的查询类型:短语查询、通配符查询、近似查询、范围查询等 [6]
搜索特定的字段,如标题、作者、内容,等等
Zend_Search_Lucene 来源于 Apache Lucene project。要了解关于 Lucene 的更多详情,请访问 http://lucene.apache.org/java/docs/
。
首先创建建立索引文件,如下示例:
index.php
<?php
require_once 'Zend/Search/lucene.php'; require_once 'CN_Lucene_Analyzer.php'; Zend_Search_Lucene_Analysis_Analyzer::setDefault(new CN_Lucene_Analyzer()); $index = new Zend_Search_Lucene('index1', true); $doc = new Zend_Search_Lucene_Document(); $doc->addField(Zend_Search_Lucene_Field::Text('url', 'http://www.eyuwo.com', 'UTF-8')); $Text='this is just a test of Zend_Search_lucene. 说些什么呢,别没事找事啊,真不够哥们,繁體能不能被搜索到呢,测试一下啊.'; $Text.='非常簡單的實作;然而就全文檢索來說還是有缺點的!首先,建立分詞索引時必定會耗費系統資源,故比較好的做法是批次定時處理建立索引的動作。第二點是中文的問題,因為中文字詞與連貫的句子的關係,在分詞時是以二個字為一個詞的最基本單位,所以單一個中文字是不會有任何搜尋結果的。最後因為建立分詞索引為觸發事件,如果沒有去觸發它就無法更新分詞至目前資料庫的最新狀態。我覺得分詞索引的方式很像是MySQL的View資料表,也是將資料表中的欄位作一個資料上的更新,只是它沒有欄位的限制,可以針對建立的「詞」索引進行搜尋。就某方面來說是很好用的功能,也不失為中文在全文索引
相关文档:
最近在处理小鱼社区的开发过程,遇到程序的性能问题,在解决这个问题的时候提出几个建议:
1、处理while/foreach之类的循环要特别注意,因为这个循环可能是好几千次的,所以里面的每句语句都要注意执行速度,要精简。还有个不好的习惯一定要注意,不要在这个中写太长的程序,因为这可能让你在几百行的代码中迷失,慢慢地迷 ......
对于那些刚刚接触PHP语言的朋友来说,什么是PHP序列化格式可能大家都还是不太清楚。我们今天就为大家详细讲解这一方面的知识。
PHP (从 PHP 3.05 开始)为保存对象提供了一组序列化和反序列化的函数:serialize、unserialize。不过在 PHP 手册中对这两个函数的说明仅限于如何使用,而对序列化结果的格式却没做任何说明。 ......
原文链接:http://www.phpdo.net/index.php/2010/01/30/1-6/
不论是PHP还是别的语法,程序总是由若干条语句组成。
从执行方式上看,语句的控制结构分为以下三种:
1、 顺序结构:从第一条语句到最后一条语句完全顺序执行;
2、 选择结构:根据用户输入或语句的中间结果去执行若干任务;
3、&n ......
假设php安装在/usr/local/php5/bin/php,初始在命令行执行PHP的时候要输入一长串的路径,eg:
$>/usr/local/php5/bin/php phpinfo.php
非常的麻烦,现在只需将php拷贝至usr/sbin目录即可直接使用php命令,eg:
$>cp /usr/local/php5/bin/php /usr/sbin/
$>php phpinfo.php
......
<html>
<head>
<title>Uploading...</title>
</head>
<body>
<h1>Uploading file...</h1>
<?php
echo '<pre>';
print_r($_FILES);
echo '</pre>';
if ($_F ......