Criando um Índice | Início Anterior Próximo

Criando um Índice

Para iniciar a criação de um índice defina alguns pontos anteriormente. Primeiro, todo documento antes de ser indexado ele deverá ter o seu conteúdo, que sempre deve ser representado por um arquivo, publicado em um diretório que chamamos de diretório de publicação. Sugere-se que o diretório de publicação de arquivos fique localizado em uma das pastas internas ao projeto. Segundo, defina quais serão as propriedades adicionais que um documento irá possuir.
Para a criação de um índice o desenvolvedor precisará usar o conector Java br.com.itx.modules.search.WIIndexer juntamente com a definição de algumas variáveis que servirão como parâmetros para o conector. Logo abaixo segue a lista de variáveis de ambiente que deverão estar configuradas para que o índice possa ser criado corretamente.

Variável | Descrição
tmp.indexName

variável que deverá conter o nome do índice que será criado ou que terá suas configurações lida.
tmp.properties
variável que deverá conter a listagem separada por vírgula dos nomes das propriedades adicionais que um documento poderá ter.
tmp.dirName
variável que deverá conter o nome do diretório de publicação dos arquivos.
tmp.mask
variável que deverá conter as extensões de arquivos que serão processados pelo índice. Se o conteúdo dessa variável for vazio o WI Search tentará indexar qualquer arquivo que for publicado.
tmp.parseHTML
variável que deverá conter o valor true para habilitar o processamento de conteúdo HTML dos documentos quando publicados.
Para exemplificar a criação de um índice inicie um projeto no WebIntegrator e crie uma página chamada configindice.wsp e coloque a listagem abaixo como sendo código-fonte da página.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Indexador</TITLE>
<SCRIPT>
function reindexar() {
with (document.forms[0]) {
elements["tmp.acao"].value="update";
submit();
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM ACTION="|wi.page.id|.wsp" METHOD="post">
<INPUT TYPE="hidden" NAME="tmp.acao" VALUE="create">
<INPUT TYPE="hidden" NAME="tmp.storeContent" VALUE="">
<INPUT TYPE="hidden" NAME="wi.page.prev" VALUE="|wi.page.id|">
<TABLE BORDER="1" CELLSPACING="0" CELLPADDING="2">
<TR>
<TD>Nome do índice: <INPUT TYPE="text" NAME="tmp.indexName" VALUE="|tmp.indexName|" SIZE="50"></TD>
</TR>
<TR>
<TD>Propriedades adicionais: <INPUT TYPE="text" NAME="tmp.properties" VALUE="|tmp.properties|" SIZE="50"></TD>
</TR>
<TD><INPUT TYPE="checkbox" NAME="tmp.parseHTML"> Processar conteúdo HTML</TD>
</TR>
<TR>
<TH BGCOLOR="#C0C0C0">Fonte de Dados</TH>
</TR>
<TR>
<TD>
<TABLE CELLSPACING="0" CELLPADDING="2">
<TR>
<TD ALIGN="left" NOWRAP><INPUT TYPE="radio" NAME="tmp.dsType" VALUE="dir" CHECKED> Diretório de Arquivos</TD>
</TR>
<TR>
<TD NOWRAP>Diretório de pesquisa: <INPUT TYPE="text" NAME="tmp.dirName" VALUE="|tmp.dirName|" SIZE="70"></TD>
</TR>
<TR>
<TD>Extensões de arquivos a serem processados: <INPUT TYPE="text" NAME="tmp.mask" VALUE="|tmp.mask|"></TD>
</TR>
<TR>
<TD NOWRAP><INPUT TYPE="checkbox" NAME="tmp.recursive"> Pesquisar em sub-diretórios</TD>
</TR>
</TABLE>
</TD>
</TR>
<TR>
<TD ALIGN="center"><INPUT TYPE="submit" VALUE="Indexar">
<INPUT TYPE="button" VALUE="Reindexar" onClick="reindexar();"</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Para completar a construção da página adicione ao pós-página dela um evento Conector Java com as seguintes configurações:

Campo | Valor
Condição | true

Nome da classe
br.com.itx.modules.search.WIIndexer
Note que o código-fonte faz referência àquelas variáveis necessárias ao conector br.com.itx.modules.search.WIIndexer. O importante é que todo projeto do WebIntegrator que precise de uma esquema de indexação e pesquisa que utilize o WI Search precisará de uma página semelhante a essa para a criação da estrutura inicial do índice.
Para executar essa página clique no ícone Visualizar do WI Builder identificado por uma página com uma lupa (). Como estudo de caso crie um índice onde os documentos publicados terão como propriedades adicionais uma data e um título, para criar a estrutura inicial de um índice com essas características siga as informações da tabela abaixo.

Campo | Descrição
Nome do índice

Informe aqui o nome do índice a ser criado, o restante do tutorial assume que tenha sido definido o nome do índice como modelo. Todo índice a ser gerado possui um nome que será usado para referenciar esse índice nas ações de indexação, pesquisa e/ou remoção através da variável tmp.indexName. Baseado nesse nome será criado um diretório em <projeto>/WEB-INF/index onde serão armazenados os arquivos proprietários do índice.
Propriedades adicionais
No WI Search um documento é composto de um conteúdo e de 0 (zero) ou mais propriedades adicionais. Liste aqui estas propriedes separadas por vírgula. Como em nosso caso queremos adicionar uma data (dividida em dia, mês e ano) e um título, as nossas propriedades adicionais serão: ano, mes, dia, titulo. Um detalhe importante é que quando se quer criar índices hierárquicos com o WI Search a ordem em que as propriedades adicionais são declaradas são levadas em consideração onde a primeira tem maior nível hierárquico (precedência) em relação a segunda que tem maior nível hierárquico em relação a terceira e assim sucessavimente.
Diretório de pesquisa
Indique aqui o caminho onde serão publicados os arquivos que terão seus conteúdos indexados. Geralmente esse diretório será o mesmo diretório a ser configurado como o diretório de upload e download do projeto. Para esse caso esse diretório será <projeto>/documentos.
Processar conteúdo HTML
Marcando essa opção o processamento de conteúdo HTML será ativado para que as tags que façam parte dos arquivos sejam retiradas e apenas o conteúdo seja indexado. Para nosso caso marque essa opção.
Extensões de arquivos a serem processados
Caso se queira que apenas certos tipos de arquivos sejam processados especifique aqui as extensões desses arquivos separadas por vírgula, se for deixado em branco o WI Search tentará indexar qualquer tipo de arquivo. Aqui vamos dizer que apenas arquivos com extensão htm ou html sejam processados, para isso coloque essas extensões separadas por vírgula.
Pesquisar em sub-diretórios
Caso esta opção esteja marcada o mecanismo de indexação também irá pesquisar por arquivos que estejam em algum sub-diretório dentro do diretório especificado no campo Diretório de pesquisa.
Após os campos terem sido preenchidos com os valores correspondentes clique no botão Indexar para que a estrutura do índice seja criada.