| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226 |
- <sect1 id="zend.search.lucene.overview">
- <title>Visão Geral</title>
- <sect2 id="zend.search.lucene.introduction">
- <title>Introdução</title>
- <para>Zend_Search_Lucene é um mecanismo para pesquisa de texto, de
- propósito geral, escrito totalmente em PHP 5. Por armazenar os
- índices no sistema de arquivos e não fazer uso de servidor de banco de
- dados, ele pode efetuar pesquisas em qualquer website rodando php.
- O Zend_Search_Lucene possui os seguintes recursos: <itemizedlist>
- <listitem>
- <para>Pesquisa agrupada por pontuação (ranked) - os resultados mais
- prováveis são retornados primeiro</para>
- </listitem>
- <listitem>
- <para>Consultas poderosas de diversos tipos: frase, curingas,
- aproximação, faixas e muito mais<footnote>
- <para>Por enquanto, apenas as consultas por termo e termos
- múltiplos são suportadas.</para>
- </footnote></para>
- </listitem>
- <listitem>
- <para>Busca por campo específico (ex: título, autor,
- descrição)</para>
- </listitem>
- </itemizedlist> Zend_Search_Lucene derivou do projeto Apache Lucene.
- Para mais informações, visite <ulink
- url="http://lucene.apache.org/java/docs/"></ulink>.</para>
- </sect2>
- <sect2 id="zend.search.lucene.index-creation.documents-and-fields">
- <title>Objetos Documento e Campo</title>
- <para>Zend_Search_Lucene trabalha sobre os documentos subdividindo-os em
- pequenas operações (atômicas) de indexação. Um documento é dividido em
- campos identificados cujo conteúdo é pesquisado.</para>
- <para>Um documento é representado por um objeto da classe
- Zend_Search_Lucene_Document, que por sua vez contém objetos da classe
- Zend_Search_Lucene_Field que representam os campos.</para>
- <para>O que é importante ressaltar é que qualquer tipo de informação pode
- ser adicionada a um índice. Informações específicas de aplicações ou
- metadados podem ser armazenados em campos de um documento, e
- posteriormente recuperados juntamente com o documento durante uma
- pesquisa.</para>
- <para>Controlar o indexador é responsabilidade de sua aplicação. Este
- recurso garante que os dados possam ser indexados a partir de qualquer
- fonte que seja acessível à sua aplicação. Por exemplo, um sistema de
- arquivos, um banco de dados, um formulário HTML, etc.</para>
- <para><code>A classe Zend_Search_Lucene_Field</code> provê alguns métodos
- estáticos para criação de campos com diferentes características:</para>
- <programlisting role="php"><?php
- $doc = new Zend_Search_Lucene_Document();
- // Field is not tokenized, but is indexed and stored within the index.
- // Stored fields can be retrived from the index.
- $doc->addField(Zend_Search_Lucene_Field::Keyword('doctype',
- 'autogenerated'));
- // Field is not tokenized nor indexed, but is stored in the index.
- $doc->addField(Zend_Search_Lucene_Field::UnIndexed('created',
- time()));
- // Binary String valued Field that is not tokenized nor indexed,
- // but is stored in the index.
- $doc->addField(Zend_Search_Lucene_Field::Binary('icon',
- $iconData));
- // Field is tokenized and indexed, and is stored in the index.
- $doc->addField(Zend_Search_Lucene_Field::Text('annotation',
- 'Document annotation text'));
- // Field is tokenized and indexed, but that is not stored in the index.
- $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
- 'My document content'));
- ?></programlisting>
- <para>Você pode dar nome aos campos de acordo com a sua preferência. Um
- campo chamado "contents" pode ser usado para a pesquisa "default". É uma
- boa prática colocar os dados principais do documento em um campo com este
- nome.</para>
- </sect2>
- <sect2 id="zend.search.lucene.index-creation.understanding-field-types">
- <title>Entendendo os tipos de campos</title>
- <itemizedlist>
- <listitem>
- <para>Campos do tipo <code>Keyword</code> são armazenados e indexados
- ***fields are stored and indexed***, meaning they can be searched as
- well as displayed them back in search results. They are not split up
- into seperate words by tokenization. Enumerated database fields
- usually translate well to Keyword fields in Zend_Search_Lucene.</para>
- </listitem>
- <listitem>
- <para>Campos do tipo <code>UnIndexed</code> não são pesquisáveis, mas
- são retornados junto com os resultados das pesquisas. Database
- timestamps, chaves primárias, caminhos do sistema de arquivos, e
- outros identificadores externos são bons candidatos para campos
- UnIndexed.</para>
- </listitem>
- <listitem>
- <para>Campos do tipo <code>Binary</code> não são avaliados nem
- indexados, mas são armazenados para serem retornados em resultados de
- pesquisas. Eles podem ser usados para armazenar qulaquer tipo de dado
- que possa ser codificados em uma string binária, por exemplo, um
- ícone.</para>
- </listitem>
- <listitem>
- <para>Campos do tipo <code>Text</code> são armazenados, indexados e
- avaliados. Campos texto são apropriados para conter informações que
- devam ser pesquisadas, bem como retornadas por uma pesquisa, tais como
- descrições e títulos.</para>
- </listitem>
- <listitem>
- <para>Campos do tipo <code>UnStored</code> são avaliados e indexados,
- mas não são armazenados no índice. Grandes quantidades de texto são
- melhor indexadas utilizando este tipo de campo. Dados armazenados
- criam um extenso índice no disco, então se você necessitar pesquisar
- sem exibir estes dados, utilize um campo UnStored. Campos UnStored são
- úteis quando utilizamos um índice Zend_Search_Lucene em combinação com
- um banco de dados relacional. Você pode indexar campos contendo dados
- volumosos usando campos UnStored para pesquisa, e recuperá-los a
- partir de um banco de dados relacional usando campos separados como
- identificadores.</para>
- <table>
- <title>Campos Zend_Search_Lucene_Field </title>
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Tipo de Campo</entry>
- <entry>Armazenado</entry>
- <entry>Indexado</entry>
- <entry>Tokenizado</entry>
- <entry>Binário</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Keyword</entry>
- <entry>Sim</entry>
- <entry>Sim</entry>
- <entry>Não</entry>
- <entry>Não</entry>
- </row>
- <row>
- <entry>UnIndexed</entry>
- <entry>Sim</entry>
- <entry>Não</entry>
- <entry>Não</entry>
- <entry>Não</entry>
- </row>
- <row>
- <entry>Binary</entry>
- <entry>Sim</entry>
- <entry>Não</entry>
- <entry>Não</entry>
- <entry>Sim</entry>
- </row>
- <row>
- <entry>Text</entry>
- <entry>Sim</entry>
- <entry>Sim</entry>
- <entry>Sim</entry>
- <entry>Não</entry>
- </row>
- <row>
- <entry>UnStored</entry>
- <entry>Não</entry>
- <entry>Sim</entry>
- <entry>Sim</entry>
- <entry>Não</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </listitem>
- </itemizedlist>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|