本文整理汇总了PHP中Zend_Search_Lucene_Field::UnStored方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Search_Lucene_Field::UnStored方法的具体用法?PHP Zend_Search_Lucene_Field::UnStored怎么用?PHP Zend_Search_Lucene_Field::UnStored使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Search_Lucene_Field
的用法示例。
在下文中一共展示了Zend_Search_Lucene_Field::UnStored方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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();
}
示例2: IndexBug
public function IndexBug($bug)
{
$this->RemoveBug($bug->bug_id);
$doc = new Zend_Search_Lucene_Document();
$doc->AddField(Zend_Search_Lucene_Field::Keyword('bug_id', $bug->bug_id));
$doc->AddField(Zend_Search_Lucene_Field::Text('title', $bug->title));
$doc->AddField(Zend_Search_Lucene_Field::Keyword('reporting_user_id', $bug->reporting_user_id));
$doc->AddField(Zend_Search_Lucene_Field::Keyword('reporting_date', $bug->reporting_date));
// We concatenate all comments into a single text blob. We only show
// hits as bugs, but we want comment content to matter.
$comment_blob = '';
$stmt = Bugdar::$db->Prepare("SELECT body FROM " . TABLE_PREFIX . "comments WHERE bug_id = ? ORDER BY comment_id");
$stmt->Execute(array($bug->bug_id));
while ($comment = $stmt->FetchObject()) {
$comment_blob .= $comment->body . "\n\n";
}
$doc->AddField(Zend_Search_Lucene_Field::UnStored('comments', $comment_blob));
// Add all attributes.
$stmt = Bugdar::$db->Prepare("SELECT * FROM " . TABLE_PREFIX . "bug_attributes WHERE bug_id = ?");
$stmt->Execute(array($bug->bug_id));
$tags = array();
while ($attr = $stmt->FetchObject()) {
if ($attr->attribute_title) {
$doc->AddField(Zend_Search_Lucene_Field::Keyword($attr->attribute_title, $attr->value));
} else {
$tags[] = $attr->value;
}
}
$doc->AddField(Zend_Search_Lucene_Field::Text('tag', implode(' ', $tags)));
$this->lucene->AddDocument($doc);
}
示例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: __construct
/**
* Object constructor
*
* @param string $data
* @param boolean $storeContent
*/
private function __construct($data, $storeContent)
{
try {
$zendpdf = \Zend_Pdf::parse($data);
// Store meta data properties
if (isset($zendpdf->properties['Title'])) {
$this->addField(\Zend_Search_Lucene_Field::UnStored('title', $zendpdf->properties['Title']));
}
if (isset($zendpdf->properties['Author'])) {
$this->addField(\Zend_Search_Lucene_Field::UnStored('author', $zendpdf->properties['Author']));
}
if (isset($zendpdf->properties['Subject'])) {
$this->addField(\Zend_Search_Lucene_Field::UnStored('subject', $zendpdf->properties['Subject']));
}
if (isset($zendpdf->properties['Keywords'])) {
$this->addField(\Zend_Search_Lucene_Field::UnStored('keywords', $zendpdf->properties['Keywords']));
}
//TODO handle PDF 1.6 metadata Zend_Pdf::getMetadata()
//do the content extraction
$pdfParse = new \App_Search_Helper_PdfParser();
$body = $pdfParse->pdf2txt($zendpdf->render());
if ($body != '') {
// Store contents
if ($storeContent) {
$this->addField(\Zend_Search_Lucene_Field::Text('body', $body, 'UTF-8'));
} else {
$this->addField(\Zend_Search_Lucene_Field::UnStored('body', $body, 'UTF-8'));
}
}
} catch (\Exception $e) {
Util::writeLog('search_lucene', $e->getMessage() . ' Trace:\\n' . $e->getTraceAsString(), Util::ERROR);
}
}
示例5: index_lucene
function index_lucene($article, $optimise)
{
$index = getIndex_lucene();
$term = new Zend_Search_Lucene_Index_Term($article["PMID"], 'PMID');
// a pre-existing page cannot be updated, it has to be
// deleted, and indexed again:
$exactSearchQuery = new Zend_Search_Lucene_Search_Query_Term($term);
$hits = $index->find($exactSearchQuery);
if (count($hits) > 0) {
echo "[deleting previous version]\n";
foreach ($hits as $hit) {
$index->delete($hit->id);
}
}
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Keyword('PMID', $article["PMID"]));
$doc->addField(Zend_Search_Lucene_Field::Keyword('Year', $article["Year"]));
$doc->addField(Zend_Search_Lucene_Field::Keyword('Journal', $article["Journal"]));
$doc->addField(Zend_Search_Lucene_Field::Text('Title', $article["Title"], 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('Authors', $article["Authors"], 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('Reference', $article["Reference"], 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::UnStored('Abstract', $article["Abstract"], 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('MeshHeadings', $article["MeshHeadings"], 'utf-8'));
$index->addDocument($doc);
if ($optimise) {
echo "Optimising index\n";
$index->optimize();
}
$index->commit();
echo "The index contains " . $index->numDocs() . " documents\n";
}
示例6: updateIndex
/**
* Updates the index for an object
*
* @param Doctrine_Record $object
*/
public function updateIndex(Doctrine_Record $object, $delete = false)
{
/* error checking */
if (!array_key_exists('models', $this->config) || empty($this->config['models'])) {
throw new Exception(sprintf('No models set in search.yml', $name));
}
if (!array_key_exists($model = get_class($object), $this->config['models'])) {
throw new Exception(sprintf('Model "%s" not defined in "%s" index in your search.yml', $model, $this->name));
}
$id = $this->generateId($object->getId(), $model);
$config = $this->config['models'][$model];
//delete existing entries
foreach ($this->search('_id:"' . $id . '"') as $hit) {
$this->getIndex()->delete($hit->id);
}
if ($delete) {
return;
}
//only add to search if canSearch method on model returns true (search if no method exists)
if (method_exists($object, 'canSearch')) {
if (!call_user_func(array($object, 'canSearch'))) {
return;
}
}
$doc = new Zend_Search_Lucene_Document();
// store a key for deleting in future
$doc->addField(Zend_Search_Lucene_Field::Keyword('_id', $id));
// store job primary key and model name to identify it in the search results
$doc->addField(Zend_Search_Lucene_Field::Keyword('_pk', $object->getId()));
$doc->addField(Zend_Search_Lucene_Field::Keyword('_model', $model));
// store title - used for search result title
if (!array_key_exists('title', $config)) {
throw new Exception(sprintf('A title must be set for model "%s" in search.yml', $model));
}
$doc->addField(Zend_Search_Lucene_Field::unIndexed('_title', call_user_func(array($object, 'get' . sfInflector::camelize($config['title'])))));
// store description - used for search result description
if (!array_key_exists('description', $config)) {
throw new Exception(sprintf('A description must be set for model "%s" in search.yml', $model));
}
$doc->addField(Zend_Search_Lucene_Field::unIndexed('_description', call_user_func(array($object, 'get' . sfInflector::camelize($config['description'])))));
// store url - @todo add more routing options
if (!array_key_exists('route', $config)) {
throw new Exception(sprintf('A route must be set for model "%s" in search.yml', $model));
}
sfContext::getInstance()->getConfiguration()->loadHelpers('Url');
$url = url_for($config['route'], $object);
$doc->addField(Zend_Search_Lucene_Field::unIndexed('_url', $url));
//store fields
if (array_key_exists('fields', $config)) {
foreach ($config['fields'] as $field => $config) {
$doc->addField(Zend_Search_Lucene_Field::UnStored($field, call_user_func(array($object, 'get' . sfInflector::camelize($field))), 'utf-8'));
}
}
//save index
$this->getIndex()->addDocument($doc);
$this->getIndex()->commit();
}
示例7: __construct
private function __construct($fileName, $storeContent)
{
// Document data holders
$documentBody = array();
$coreProperties = array();
// Open OpenXML package
$package = new ZipArchive();
$package->open($fileName);
// Read relations and search for officeDocument
$relations = simplexml_load_string($package->getFromName('_rels/.rels'));
foreach ($relations->Relationship as $rel) {
if ($rel["Type"] == Zend_Search_Lucene_Document_OpenXml::SCHEMA_OFFICEDOCUMENT) {
// Found office document! Read in contents...
$contents = simplexml_load_string($package->getFromName($this->absoluteZipPath(dirname($rel['Target']) . '/' . basename($rel['Target']))));
$contents->registerXPathNamespace('w', Zend_Search_Lucene_Document_Docx::SCHEMA_WORDPROCESSINGML);
$paragraphs = $contents->xpath('//w:body/w:p');
foreach ($paragraphs as $paragraph) {
$runs = $paragraph->xpath('.//w:r/*[name() = "w:t" or name() = "w:br"]');
if ($runs === false) {
// Paragraph doesn't contain any text or breaks
continue;
}
foreach ($runs as $run) {
if ($run->getName() == 'br') {
// Break element
$documentBody[] = ' ';
} else {
$documentBody[] = (string) $run;
}
}
// Add space after each paragraph. So they are not bound together.
$documentBody[] = ' ';
}
break;
}
}
// Read core properties
$coreProperties = $this->extractMetaData($package);
// Close file
$package->close();
// Store filename
$this->addField(Zend_Search_Lucene_Field::Text('filename', $fileName, 'UTF-8'));
// Store contents
if ($storeContent) {
$this->addField(Zend_Search_Lucene_Field::Text('body', implode('', $documentBody), 'UTF-8'));
} else {
$this->addField(Zend_Search_Lucene_Field::UnStored('body', implode('', $documentBody), 'UTF-8'));
}
// Store meta data properties
foreach ($coreProperties as $key => $value) {
$this->addField(Zend_Search_Lucene_Field::Text($key, $value, 'UTF-8'));
}
// Store title (if not present in meta data)
if (!isset($coreProperties['title'])) {
$this->addField(Zend_Search_Lucene_Field::Text('title', $fileName, 'UTF-8'));
}
}
示例8: 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;
}
示例9: __construct
public function __construct($fileName, $storeContent)
{
// Store filename
$this->addField(Zend_Search_Lucene_Field::Text('filename', $fileName, 'UTF-8'));
$this->_filename = $fileName;
// Store contents
if ($storeContent) {
$this->addField(Zend_Search_Lucene_Field::Text('body', implode(' ', $this->getBody()), 'UTF-8'));
} else {
$this->addField(Zend_Search_Lucene_Field::UnStored('body', implode(' ', $this->getBody()), 'UTF-8'));
}
}
示例10: testUnStored
public function testUnStored()
{
$field = Zend_Search_Lucene_Field::UnStored('field', 'value');
$this->assertEquals($field->boost, 1);
$this->assertEquals($field->encoding, '');
$this->assertEquals($field->isBinary, false);
$this->assertEquals($field->isIndexed, true);
$this->assertEquals($field->isStored, false);
$this->assertEquals($field->isTokenized, true);
$this->assertEquals($field->name, 'field');
$this->assertEquals($field->value, 'value');
}
示例11: addFeed
public function addFeed(Feed $feed)
{
$index = Zend_Search_Lucene::open(Zend_Registry::getInstance()->search->feed);
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text('title', $feed->title));
$doc->addField(Zend_Search_Lucene_Field::Text('siteUrl', $feed->siteUrl));
$doc->addField(Zend_Search_Lucene_Field::Text('feedUrl', $feed->url));
$doc->addField(Zend_Search_Lucene_Field::Text('language', $feed->language));
$doc->addField(Zend_Search_Lucene_Field::Text('category', $feed->category));
$doc->addField(Zend_Search_Lucene_Field::Text('title', $feed->title));
$doc->addField(Zend_Search_Lucene_Field::UnStored('description', $feed->description));
$index->addDocument($doc);
}
示例12: __construct
public function __construct(&$doc, &$data, $course_id, $group_id, $user_id, $path, $additional_keyset = null)
{
$encoding = 'UTF-8';
//document identification and indexing
$this->addField(Zend_Search_Lucene_Field::Keyword('docid', $doc->docid, $encoding));
//document type : the name of the Moodle element that manages it
$this->addField(Zend_Search_Lucene_Field::Keyword('doctype', $doc->documenttype, $encoding));
//allows subclassing information from complex modules.
$this->addField(Zend_Search_Lucene_Field::Keyword('itemtype', $doc->itemtype, $encoding));
//caches the course context.
$this->addField(Zend_Search_Lucene_Field::Keyword('course_id', $course_id, $encoding));
//caches the originator's group.
$this->addField(Zend_Search_Lucene_Field::Keyword('group_id', $group_id, $encoding));
//caches the originator if any
$this->addField(Zend_Search_Lucene_Field::Keyword('user_id', $user_id, $encoding));
// caches the context of this information. i-e, the context in which this information
// is being produced/attached. Speeds up the "check for access" process as context in
// which the information resides (a course, a module, a block, the site) is stable.
$this->addField(Zend_Search_Lucene_Field::UnIndexed('context_id', $doc->contextid, $encoding));
//data for document
$this->addField(Zend_Search_Lucene_Field::Text('title', $doc->title, $encoding));
$this->addField(Zend_Search_Lucene_Field::Text('author', $doc->author, $encoding));
$this->addField(Zend_Search_Lucene_Field::UnStored('contents', $doc->contents, $encoding));
$this->addField(Zend_Search_Lucene_Field::UnIndexed('url', $doc->url, $encoding));
$this->addField(Zend_Search_Lucene_Field::UnIndexed('date', $doc->date, $encoding));
//additional data added on a per-module basis
$this->addField(Zend_Search_Lucene_Field::Binary('data', serialize($data)));
// adding a path allows the document to know where to find specific library calls
// for checking access to a module or block content. The Lucene records should only
// be responsible to bring back to that call sufficient and consistent information
// in order to perform the check.
$this->addField(Zend_Search_Lucene_Field::UnIndexed('path', $path, $encoding));
/*
// adding a capability set required for viewing. -1 if no capability required.
// the capability required for viewing is depending on the local situation
// of the document. each module should provide this information when pushing
// out search document structure. Although capability model should be kept flat
// there is no exclusion some module or block developpers use logical combinations
// of multiple capabilities in their code. This possibility should be left open here.
$this->addField(Zend_Search_Lucene_Field::UnIndexed('capabilities', $caps));
*/
/*
// Additional key set allows a module to ask for extensible criteria based search
// depending on the module internal needs.
*/
if (!empty($additional_keyset)) {
foreach ($additional_keyset as $keyname => $keyvalue) {
$this->addField(Zend_Search_Lucene_Field::Keyword($keyname, $keyvalue, $encoding));
}
}
}
示例13: fill_index
function fill_index()
{
for ($i = 0; $i < 10; $i++) {
$index = new Zend_Search_Lucene('./data/index', true);
$index->find("test");
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Text("test", getword()));
$doc->addField(Zend_Search_Lucene_Field::UnStored("contents", getword()));
$index->addDocument($doc);
$index->commit();
$index->getDirectory()->close();
//comment this to see another bug :-|
}
}
示例14: index
public function index(Zfplanet_Model_Entry $entry)
{
if (is_null($this->_index)) {
return;
}
$doc = new Zend_Search_Lucene_Document();
$doc->addField(Zend_Search_Lucene_Field::Keyword('id', $entry->id, 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::UnIndexed('publishedDate', $entry->publishedDate, 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Keyword('uri', $entry->uri, 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::Text('title', $entry->title, 'utf-8'));
$doc->addField(Zend_Search_Lucene_Field::UnStored('content', $entry->content, 'utf-8'));
$this->_index->addDocument($doc);
$this->_index->commit();
$this->_index->optimize();
}
示例15: __construct
private function __construct($data, $isFile, $storeContent)
{
$this->_doc = new DOMDocument();
$this->_doc->substituteEntities = true;
if ($isFile) {
$htmlData = file_get_contents($data);
} else {
$htmlData = $data;
}
@$this->_doc->loadHTML($htmlData);
$xpath = new DOMXPath($this->_doc);
$docTitle = '';
$titleNodes = $xpath->query('/html/head/title');
foreach ($titleNodes as $titleNode) {
// title should always have only one entry, but we process all nodeset entries
$docTitle .= $titleNode->nodeValue . ' ';
}
$this->addField(Zend_Search_Lucene_Field::Text('title', $docTitle, $this->_doc->actualEncoding));
$metaNodes = $xpath->query('/html/head/meta[@name]');
foreach ($metaNodes as $metaNode) {
$this->addField(Zend_Search_Lucene_Field::Text($metaNode->getAttribute('name'), $metaNode->getAttribute('content'), $this->_doc->actualEncoding));
}
$docBody = '';
$bodyNodes = $xpath->query('/html/body');
foreach ($bodyNodes as $bodyNode) {
// body should always have only one entry, but we process all nodeset entries
$this->_retrieveNodeText($bodyNode, $docBody);
}
if ($storeContent) {
$this->addField(Zend_Search_Lucene_Field::Text('body', $docBody, $this->_doc->actualEncoding));
} else {
$this->addField(Zend_Search_Lucene_Field::UnStored('body', $docBody, $this->_doc->actualEncoding));
}
$linkNodes = $this->_doc->getElementsByTagName('a');
foreach ($linkNodes as $linkNode) {
if (($href = $linkNode->getAttribute('href')) != '' && (!self::$_excludeNoFollowLinks || strtolower($linkNode->getAttribute('rel')) != 'nofollow')) {
$this->_links[] = $href;
}
}
$this->_links = array_unique($this->_links);
$linkNodes = $xpath->query('/html/head/link');
foreach ($linkNodes as $linkNode) {
if (($href = $linkNode->getAttribute('href')) != '') {
$this->_headerLinks[] = $href;
}
}
$this->_headerLinks = array_unique($this->_headerLinks);
}