基於 ZF 官方 Demo 改構,快速集成 Apache Lucene 全文檢索能力。

Zend_Search_Lucene::create() 建立索引目錄Zend_Search_Lucene_Document,添加字段(Text/Keyword/UnIndexed/UnStored)$index->commit() 持久化Zend_Search_Lucene::find() 或解析查詢字符串 Zend_Search_Lucene_Search_QueryParser::parse()// 創建/打開索引
$index = Zend_Search_Lucene::open('/path/to/index');
// 添加文檔
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('title', $title, 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('content', $content, 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Keyword('category', $category));
$index->addDocument($doc);
$index->commit();
// 搜索
$query = Zend_Search_Lucene_Search_QueryParser::parse($keywords);
$hits = $index->find($query);
foreach ($hits as $hit) {
echo $hit->score . ' - ' . $hit->title . '<br>';
}
適合中小型項目快速添加全文檢索功能,大數據量場景建議遷移至 Solr/Elasticsearch。