4D Write Pro – Indexação de texto completo

Tradução automática de Deepl

“Quero encontrar todos os documentos que falam sobre o tango! Preciso deles rapidamente! Posso fazer isso?”

Ok, mas primeiro respire!

As pesquisas por palavras-chave nos documentos 4D Write Pro requerem simplesmente a adição de um novo atributo de indexação dentro de cada documento. Isto não é feito por defeito porque este tipo de pesquisa não é frequentemente necessário, pelo que não faria sentido aumentar sistematicamente o tamanho dos documentos. No entanto, quando é necessário, este tipo de índice é muito fácil de construir.

“O tango é uma dança tradicional argentina”. O nosso objectivo é criar uma lista de palavras a partir do conteúdo dos documentos. Isto é feito principalmente através de dois comandos:

  • WP Get text – devolve o texto em bruto do documento
  • Get text keywords – preenche um conjunto de textos com as palavras do texto fornecido. Uma vez preenchida esta matriz, basta adicioná-la como atributo do objecto de documento 4D Write Pro, e utilizá-la como alvo para pesquisas de palavras-chave.

Vamos dar uma olhada mais atenta aos detalhes.

Não perca nada noSIDE o documento

WP Get text devolve o conteúdo do alvo como texto simples. O alvo pode ser um determinado intervalo ou um documento inteiro. Se passar um documento como argumento, apenas o texto no corpo do documento será devolvido. Os cabeçalhos e rodapés serão ignorados, o que provavelmente não é desejável. Uma vez que cada secção de um documento pode ter os seus próprios cabeçalhos e rodapés, terá de percorrer cada um deles e ler o seu conteúdo. Certifique-se de levar em conta quaisquer variantes (por exemplo, primeira página, página da direita, página da esquerda).

Colocar o texto em UM ARRAY

Get text keywords preenche uma matriz baseada no conteúdo do texto fonte. A única subtileza aqui é não esquecer o parâmetro opcional da estrela (*). Permite preencher o array apenas com valores que são distintos das palavras do texto. Isto evita “peso” desnecessário 🙂

Criar o índice no documento

O nome do atributo que irá conter o índice depende de si, contudo, é fortemente recomendado que o prefira com um sublinhado para evitar potenciais conflitos com atributos públicos existentes (ou futuros) dos documentos 4D Write Pro (Exemplo: “_palavras-chave”).

Claro que esta indexação deve ser feita sempre que os documentos são modificados, mas esta é uma tarefa realmente muito rápida e não causará qualquer abrandamento perceptível para os utilizadores.

Indexar o índice!

Para que as consultas utilizando o índice de palavras-chave sejam rápidas e eficientes, o próprio documento deve, evidentemente, ser indexado. Não há necessidade de se preocupar com o tamanho do índice. Apenas os atributos (públicos) expostos são indexados, pelo que só é de esperar um superdimensionamento muito ligeiro. Por exemplo, não há necessidade de criar um novo campo de objectos que sirva apenas este propósito. Isto seria totalmente inútil e o espaço ocupado seria maior do que utilizar um objecto existente (ou seja, o próprio documento 4D Write Pro).

No caso de campos de objectos, “Automático” significa “cluster b-tree”, que é perfeito para cartas comerciais ou documentos semelhantes.

Fazer consultas sobre este índice

As consultas clássicas devem ser feitas “por atributo”. Tenha em mente que o atributo é uma colecção, pelo que deve adicionar parênteses de abertura e fecho [ ] para indicar ao 4D que a pesquisa deve ser feita dentro desta colecção. Por exemplo:

QUERY BY ATTRIBUTE([SAMPLE]; [SAMPLE]WP; "_palavras-chave[]"; =; $val)

As consultas ORDA são realizadas seguindo o mesmo princípio:

$entitySel:=ds.SAMPLE.query("WP._keywords[] = :1"; $val)

Conclusão

Se nos seus documentos, este tipo de indexação não estava previsto desde o início e a necessidade surge, nunca é tarde demais! Apply to selection do método de indexação fará o trabalho na perfeição. As pesquisas também podem ser combinadas para ter em conta várias palavras ao mesmo tempo (todas as palavras) ou separadamente (pelo menos uma das palavras). Isto permitir-lhe-á (e especialmente aos utilizadores das suas bases de dados) encontrar textos muito rapidamente, de acordo com as palavras que contêm.

Agora tem dois métodos para criar (e talvez remover) o índice de texto completo! Eles podem ser utilizados a partir de 4D V17. Verifique este trecho de código que pode utilizar na sua própria aplicação!

Roland Lannuzel
- Proprietário do produto & Especialista 4D - Depois de estudar electrónica, a Roland entrou nas TI industriais como desenvolvedor e consultor, construindo soluções para clientes com uma variedade de bases de dados e tecnologias. No final dos anos 80, apaixonou-se pela 4D e utilizou-a para escrever aplicações comerciais que incluem sistemas de contabilidade, facturação e correio electrónico. Juntando-se à empresa em 1997, as valiosas contribuições de Roland incluem a concepção de especificações, ferramentas de teste, demonstrações, bem como formação e palestras para a comunidade 4D em muitas conferências. Ele continua a moldar activamente o futuro da 4D, definindo novas características e ferramentas de desenvolvimento de bases de dados.