実験的に開発した小さなプログラムやWebサービスを公開。また、気になった最新IT技術情報をブログ形式でメモ。
Lucene(Feed)
Zend Frameworkに付属するデモ:
LuceneをつかってFeedからインデックス作成と検索を行うサンプル
Luceneをサポートするクラス ”Zend/Search/Lucene.php” を利用して、Feedからインデックス作成と検索を実現するサンプルコード。
動作サンプル : なし
ソース: /demos/Zend/Search/Lucene/feed-search/create-index.php
- < ?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()}...
- ";
- $index->addDocument($doc);
- }
- }
- $index->commit();
ソース: /demos/Zend/Search/Lucene/feed-search/search-index.php
- < ?php
- require_once 'Zend/Search/Lucene.php';
- $index = new Zend_Search_Lucene('/tmp/feeds_index');
- echo "Index contains {$index->count()} documents.
- ";
- $search = 'php';
- $hits = $index->find(strtolower($search));
- echo "Search for "$search" returned " .count($hits). " hits.
- ";
- foreach ($hits as $hit) {
- echo str_repeat('-', 80) . "
- ";
- echo 'ID: ' . $hit->id ."
- ";
- echo 'Score: ' . sprintf('%.2f', $hit->score) ."
- ";
- foreach ($hit->getDocument()->getFieldNames() as $field) {
- echo "$field:
- ";
- echo ' ' . trim(substr($hit->$field,0,76)) . "
- ";
- }
- }

RSS Feed