本文整理汇总了PHP中Zend_Search_Lucene_Document::addField方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Search_Lucene_Document::addField方法的具体用法?PHP Zend_Search_Lucene_Document::addField怎么用?PHP Zend_Search_Lucene_Document::addField使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Search_Lucene_Document
的用法示例。
在下文中一共展示了Zend_Search_Lucene_Document::addField方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: index
function index()
{
$this->load->library('zend', 'Zend/Feed');
$this->load->library('zend', 'Zend/Search/Lucene');
$this->load->library('zend');
$this->zend->load('Zend/Feed');
$this->zend->load('Zend/Search/Lucene');
//Create index.
$index = new Zend_Search_Lucene('C:\\xampp\\xampp\\htdocs\\controle_frota\\lucene\\feeds_index', true);
$feeds = array('http://oglobo.globo.com/rss.xml?limite=50');
//grab each feed.
foreach ($feeds as $feed) {
$channel = Zend_Feed::import($feed);
echo $channel->title() . '<br />';
//index each item.
foreach ($channel->items as $item) {
if ($item->link() && $item->title() && $item->description()) {
//create an index doc.
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Keyword('link', $this->sanitize($item->link())));
$doc->addField(Zend_Search_Lucene_Field::Text('title', $this->sanitize($item->title())));
$doc->addField(Zend_Search_Lucene_Field::Unstored('contents', $this->sanitize($item->description())));
echo "\tAdding: " . $item->title() . '<br />';
$index->addDocument($doc);
}
}
}
$index->commit();
echo $index->count() . ' Documents indexed.<br />';
}
示例2: updateLuceneIndex
public function updateLuceneIndex()
{
//delete existing entries
$index = $this->getTable()->getLuceneIndex();
// remove existing entries
foreach ($index->find('pk:' . $this->getId()) as $hit) {
$index->delete($hit->id);
}
// create new Lucene document
$doc = new Zend_Search_Lucene_Document();
// store product primary key to identify it in the search results
$doc->addField(Zend_Search_Lucene_Field::Keyword('pk', $this->getId()));
$tr = Doctrine::getTable('ProductTranslation')->createQuery()->from('ProductTranslation pt')->where('pt.id = ?', $this->getId())->execute();
$doc->addField(Zend_Search_Lucene_Field::UnStored('original_title', $this->getOriginalTitle(), 'utf-8'));
// add fields to index depending on existing Translations
foreach ($tr->toArray() as $transArr) {
$lang = $transArr['lang'];
unset($transArr['lang'], $transArr['id'], $transArr['volume'], $transArr['slug']);
foreach ($transArr as $field => $value) {
$fieldName = $field . '_' . $lang;
// (name_en, name_fi), (description_en, description_fi)
$doc->addField(Zend_Search_Lucene_Field::UnStored($fieldName, strip_tags($value), 'utf-8'));
}
}
// add product to the index
$index->addDocument($doc);
$index->commit();
}
示例3: updateAction
public function updateAction()
{
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
// Создание индекса
$index = Zend_Search_Lucene::create(APPLICATION_ROOT . '/data/my-index');
$mediaMapper = new Media_Model_Mapper_Media();
$select = $mediaMapper->getDbTable()->select();
$select->where('deleted != ?', 1)->where('active != ?', 0)->where('category_id IN(?)', array(2, 3, 4))->order('timestamp DESC');
$mediaItems = $mediaMapper->fetchAll($select);
if (!empty($mediaItems)) {
foreach ($mediaItems as $mediaItem) {
$doc = new Zend_Search_Lucene_Document();
// Сохранение Name документа для того, чтобы идентифицировать его
// в результатах поиска
$doc->addField(Zend_Search_Lucene_Field::Text('title', strtolower($mediaItem->getName()), 'UTF-8'));
// Сохранение URL документа для того, чтобы идентифицировать его
// в результатах поиска
$doc->addField(Zend_Search_Lucene_Field::Text('url', '/media/' . $mediaItem->getFullPath(), 'UTF-8'));
// Сохранение Description документа для того, чтобы идентифицировать его
// в результатах поиска
// $doc->addField(Zend_Search_Lucene_Field::Text('description', strtolower($mediaItem->getSContent()),'UTF-8'));
// Индексирование keyWords содержимого документа
$doc->addField(Zend_Search_Lucene_Field::UnStored('keyword', strtolower($mediaItem->getMetaKeywords()), 'UTF-8'));
// Индексирование содержимого документа
$doc->addField(Zend_Search_Lucene_Field::UnStored('contents', strtolower($mediaItem->getContent()), 'UTF-8'));
// Добавление документа в индекс
$index->addDocument($doc);
}
}
}
示例4: edit
public function edit($needFields = array(), $data = array(), $charset = 'UTF-8')
{
$index = new Zend_Search_Lucene(ZY_ROOT . '/index');
$doc = new Zend_Search_Lucene_Document();
foreach ($needFields as $key => $field) {
switch ($field) {
case 'keywords':
$doc->addField(Zend_Search_Lucene_Field::Keyword($key, $data[$key], $charset));
break;
case 'text':
$doc->addField(Zend_Search_Lucene_Field::Text($key, $data[$key], $charset));
break;
case 'unindexed':
$doc->addField(Zend_Search_Lucene_Field::unindexed($key, $data[$key], $charset));
break;
default:
$doc->addField(Zend_Search_Lucene_Field::$field($key, $data[$key], $charset));
break;
}
}
$index->addDocument($doc);
$index->commit();
$index->optimize();
return TRUE;
}
示例5: addModel
/**
* Adds a new model to the search index
*
* @param ISearchable $obj
* @throws CException
*/
public function addModel($obj)
{
if (!$obj instanceof ISearchable) {
throw new CException("Invalid Object given, must implement ISearchable");
}
// Get Primary Key
$attributes = $obj->getSearchAttributes();
$guid = $attributes['model'] . $attributes['pk'];
$index = $this->getIndex();
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('guid', $guid));
$doc->addField(Zend_Search_Lucene_Field::Text('belongsToType', $attributes['belongsToType']));
$doc->addField(Zend_Search_Lucene_Field::Text('belongsToId', $attributes['belongsToId']));
$doc->addField(Zend_Search_Lucene_Field::Text('belongsToGuid', $attributes['belongsToGuid']));
$doc->addField(Zend_Search_Lucene_Field::Text('model', $attributes['model']));
$doc->addField(Zend_Search_Lucene_Field::Text('pk', $attributes['pk']));
$doc->addField(Zend_Search_Lucene_Field::Text('title', $attributes['title'], 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('url', $attributes['url'], 'UTF-8'));
// Remove all internal attributes
unset($attributes['belongsToType']);
unset($attributes['belongsToId']);
unset($attributes['belongsToGuid']);
unset($attributes['model']);
unset($attributes['pk']);
unset($attributes['title']);
unset($attributes['url']);
foreach ($attributes as $key => $val) {
$doc->addField(Zend_Search_Lucene_Field::Text($key, $val, 'UTF-8'));
}
#print "\t ADD ".$guid." \n";
$index->addDocument($doc);
$index->commit();
}
示例6: buildAction
public function buildAction()
{
// create the index
$index = Zend_Search_Lucene::create(APPLICATION_PATH . '/indexes');
// fetch all of the current pages
$mdlPage = new Model_Page();
$currentPages = $mdlPage->fetchAll();
if ($currentPages->count() > 0) {
// create a new search document for each page
foreach ($currentPages as $p) {
$page = new CMS_Content_Item_Page($p->id);
$doc = new Zend_Search_Lucene_Document();
// you use an unindexed field for the id because you want the id to be
// included in the search results but not searchable
$doc->addField(Zend_Search_Lucene_Field::unIndexed('page_id', $page->id));
// you use text fields here because you want the content to be searchable
// and to be returned in search results
$doc->addField(Zend_Search_Lucene_Field::text('page_name', $page->name));
$doc->addField(Zend_Search_Lucene_Field::text('page_headline', $page->headline));
$doc->addField(Zend_Search_Lucene_Field::text('page_description', $page->description));
$doc->addField(Zend_Search_Lucene_Field::text('page_content', $page->content));
// add the document to the index
$index->addDocument($doc);
}
}
// optimize the index
$index->optimize();
// pass the view data for reporting
$this->view->indexSize = $index->numDocs();
}
示例7: buildplaces
public function buildplaces()
{
ini_set('memory_limit', '1000M');
set_time_limit(0);
$time = time();
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8Num_CaseInsensitive());
/**
* Create index
*/
$index = Zend_Search_Lucene::create($this->_indexPath);
/**
* Get all users
*/
$sql = $this->_db->select()->from($this->_name, array('id', 'name', 'placepic'))->limit(7500);
$result = $this->_db->fetchAssoc($sql);
foreach ($result as $values) {
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::keyword('placeid', $values['id']));
$doc->addField(Zend_Search_Lucene_Field::text('placename', $values['name']));
$doc->addField(Zend_Search_Lucene_Field::unStored('placepic', $values['placepic']));
$index->addDocument($doc);
}
$index->commit();
$elapsed = time() - $time;
print_r($elapsed);
}
示例8: index
/**
* Index a file
*
* @param string $filePath The file path
*/
public function index($filePath)
{
$content = file_get_contents($filePath);
$modificationTime = filemtime($filePath);
$checksum = md5($content);
// Get the document
$hits = $this->_data->find('path:' . $filePath);
if (count($hits) > 0) {
$hit = $hits[0];
$document = $hit->getDocument();
// If the checksums are the same, no need to update
if ($checksum === $document->checksum) {
return;
}
// Delete the document
$this->_data->delete($hit);
}
// Create a new document
$document = new Zend_Search_Lucene_Document();
$document->addField(Zend_Search_Lucene_Field::keyword('path', $filePath));
$document->addField(Zend_Search_Lucene_Field::keyword('modificationTime', $modificationTime));
$document->addField(Zend_Search_Lucene_Field::keyword('checksum', $checksum));
$document->addField(Zend_Search_Lucene_Field::unStored('content', $content, 'utf-8'));
$this->_data->addDocument($document);
// Commit the changes
$this->_data->commit();
$this->_data->optimize();
}
示例9: addPageToIndex
public static function addPageToIndex($page, $toasterSearchIndex = false)
{
if (!self::initIndex()) {
return false;
}
if ($page instanceof Application_Model_Models_Page) {
$page = $page->toArray();
$containers = Application_Model_Mappers_ContainerMapper::getInstance()->findByPageId($page['id']);
$page['content'] = '';
if (!empty($containers)) {
foreach ($containers as $container) {
$page['content'] .= $container->getContent();
}
}
}
$document = new Zend_Search_Lucene_Document();
$document->addField(Zend_Search_Lucene_Field::keyword('pageId', $page['id']));
$document->addField(Zend_Search_Lucene_Field::unStored('metaKeyWords', $page['metaKeywords'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::unStored('metaDescription', $page['metaDescription'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::unStored('headerTitle', $page['headerTitle'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::unStored('content', $page['content'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::text('draft', $page['draft'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::text('teaserText', $page['teaserText'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::text('url', $page['url'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::text('navName', $page['navName'], 'UTF-8'));
$document->addField(Zend_Search_Lucene_Field::text('h1', $page['h1'], 'UTF-8'));
// $document->addField(Zend_Search_Lucene_Field::text('previewImage', $page['previewImage']));
self::$_index->addDocument($document);
}
示例10: luceneIndexAction
public function luceneIndexAction()
{
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$path = PUBLIC_PATH . '/tmp/lucene';
try {
$index = Zend_Search_Lucene::open($path);
} catch (Zend_Search_Lucene_Exception $e) {
try {
$index = Zend_Search_Lucene::create($path);
} catch (Zend_Search_Lucene_Exception $e) {
echo "Unable to open or create index : {$e->getMessage()}";
}
}
for ($i = 0; $i < $index->maxDoc(); $i++) {
$index->delete($i);
}
$users = new Application_Model_User();
$users = $users->fetchAll();
foreach ($users as $_user) {
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_TextNum_CaseInsensitive());
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('title', $_user->getFirstName()));
$doc->addField(Zend_Search_Lucene_Field::keyword('empcode', $_user->getEmployeeCode()));
$index->addDocument($doc);
$index->commit();
$index->optimize();
}
}
示例11: asLuceneDocument
public function asLuceneDocument()
{
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('page_title', $this->title, $this->_charset));
$doc->addField(Zend_Search_Lucene_Field::Text('page_link', $this->path, $this->_charset));
$doc->addField(Zend_Search_Lucene_Field::Text('page_teaser', $this->teaser, $this->_charset));
$doc->addField(Zend_Search_Lucene_Field::unstored('page_content', $this->content, $this->_charset));
$doc->addField(Zend_Search_Lucene_Field::UnStored('search_tags', $this->searchTags, $this->_charset));
return $doc;
}
示例12: insertFromDB
public function insertFromDB($since)
{
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Keyword('id', $row['id']));
$doc->addField(Zend_Search_Lucene_Field::Keyword('person', $row['person']));
$doc->addField(Zend_Search_Lucene_Field::Text('celeb_type', $row['celeb_type']));
$doc->addField(Zend_Search_Lucene_Field::Text('wikikeyword', $row['wikikeyword']));
$doc->addField(Zend_Search_Lucene_Field::Text('blurb', $row['blurb']));
$this->search->addDocument($doc);
}
示例13: update
public static function update($data)
{
try {
//Update an index.
$index = Zend_Search_Lucene::open('../application/searchindex');
Zend_Search_Lucene_Analysis_Analyzer::setDefault(new Zend_Search_Lucene_Analysis_Analyzer_Common_Utf8_CaseInsensitive());
} catch (Zend_Search_Exception $e) {
throw $e;
}
// remove an existing entry
$hits = $index->find('pk:' . $data['pk']);
foreach ($hits as $hit) {
$index->delete($hit->id);
}
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Keyword('pk', $data['pk']));
$doc->addField(Zend_Search_Lucene_Field::Keyword('code', $data['code'], 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::Keyword('u_code', strtolower($data['code']), 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::unIndexed('type', $data['type'], 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::unIndexed('id', $data['id'], 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('title', $data['title'], 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('en_title', Default_Model_Functions::convert_vi_to_en($data['title']), 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('description', $data['description'], 'UTF-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('en_description', Default_Model_Functions::convert_vi_to_en($data['description']), 'UTF-8'));
$index->addDocument($doc);
$index->commit();
}
示例14: _insert
private static function _insert($index, $item, $tags)
{
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('title', $item->name));
$doc->addField(Zend_Search_Lucene_Field::Text('item_id', strval($item->id)));
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('image_id', strval($item->image_id)));
$doc->addField(Zend_Search_Lucene_Field::Text('description', $item->description));
$doc->addField(Zend_Search_Lucene_Field::Text('tag', $tags));
$index->addDocument($doc);
$index->commit();
}
示例15: time
/**
* rebuild the index
*
* @access public
* @return void
*/
function build_index()
{
$index = $this->__open(true);
$index->setMergeFactor(2000);
$index->setMaxBufferedDocs(500);
$start = time();
foreach ($this->settings as $model => $model_options) {
App::import('Model', $model);
$model = new $model();
if (empty($model_options['find_options'])) {
$model_options['find_options'] = array();
}
if (method_exists($model, 'find_index')) {
$results = $model->find_index('all', $model_options['find_options']);
} else {
$results = $model->find('all', $model_options['find_options']);
}
if (Configure::read()) {
$this->log($model->name . ' find time: ' . (time() - $start), 'searchable');
$start = time();
}
$count = count($results);
$i = 1;
foreach ($results as $result) {
printf("%.1f", $i / $count * 100);
$this->out("");
$i++;
$this->out('Processing ' . $model->name . ' #' . $result[$model->name]['id']);
$doc = new Zend_Search_Lucene_Document();
// add the model field
$doc->addField(Zend_Search_Lucene_Field::Keyword('cake_model', $model->name, 'utf-8'));
foreach ($model_options['fields'] as $field_name => $options) {
if (!empty($options['prepare']) && function_exists($options['prepare'])) {
$result[$model->name][$field_name] = call_user_func($options['prepare'], $result[$model->name][$field_name]);
}
$alias = !empty($options['alias']) ? $options['alias'] : $field_name;
$doc->addField(Zend_Search_Lucene_Field::$options['type']($alias, $result[$model->name][$field_name], 'utf-8'));
}
$index->addDocument($doc);
$this->out('Processed ' . $model->name . ' #' . $result[$model->name]['id']);
}
if (Configure::read()) {
$this->log($model->name . ' adding time: ' . (time() - $start), 'searchable');
$start = time();
}
}
$this->optimize($index);
$index->commit();
if (Configure::read()) {
$this->log('Optimize+commit time: ' . (time() - $start));
}
}