Creare un motore di ricerca con Lucene e PHP

Durante uno dei miei progetti mi è capitato di dover trovare una soluzione per creare un motore di ricerca in grado di indicizzare diversi tipi di file, come documenti di Microsoft Office, PDF e testo semplice.

Indicizzare documenti Microsoft Office con Lucene

La prima soluzione che mi è venuta in mente è di utilizzare Lucene.
Lucene è un progetto open source che fornisce la tecnologia necessaria per l’indicizzazione e la ricerca di testo. È scritto in Java, quindi è indipendente dalla piattaforma, inoltre non è una vera e propria applicazione, ma un insieme di librerie, quindi si può aggiugere come modulo ad applicazioni già esistenti. Altro punto di forza è la possibilità di effettuare ricerche full text.

Sebbene sia molto avanzato, da solo non consente l’indicizzazione di documenti nei formati già citati, però fornisce delle API per consentire di effettuare il parsing con codice esterno.
Per svolgere questo compito si può utilizzare Tika, un sotto-progetto di Lucene.
Approfondisci

Connessioni sicure a MySQL con SSL

MySQL supporta connessioni sicure (criptate) tra client e server sfruttando il protocollo Secure Sockets Layer (SSL).
In questo articolo affronteremo per prima cosa la generazione dei certificati, poi configureremo il server per supportare connessioni sicure e infine vedremo come poter richiedere l’autenticazione del client tramite certificato. In appendice ho inserito anche un breve script in PHP che mostra come è possibile sfruttare questo tipo di connessione.
Approfondisci

Apache e SSL: configurazione https e creazione certificati

In questo articolo vedremo come configurare Apache per lavorare sul protocollo HTTPS sfruttando le potenzialità di OpenSSL su un qualunque sistema Linux (per i miei test ho utilizzato Ubuntu 9.04, Apache 2.2.11, OpenSSL 0.9.8g).
Per prima cosa installeremo OpenSSL, poi attraverso la console genereremo una CA (Certificate Authority) e successivamente il certificato server, poi configureremo Apache per funzionare sul protocollo https. Infine vedremo come creare un’area il cui accesso è riservato solo a coloro che possiedono un certificato client.
Approfondisci

Paesi e valute: ISO-3166 e ISO-4217

Nell’ambito dei miei progetti mi è capitato diverse volte di dover cercare delle tabelle con l’elenco di tutti i paesi del mondo ma anche di tutte le valute.
Basandomi sugli standard ISO ho generato due file CSV molto utili e completi per questo scopo.

Il primo file contiene: codice nazione 2 caratteri, codice nazione 3 caratteri, codice numerico, codice continente 2 caratteri, denominazione in italiano, denominazione in inglese.

I codici dei continenti sono i seguenti:
AF = Africa
AN = Antarctica
AS = Asia
AU = Oceania
EU = Europa
LA = Latin America
NA = North America

Il secondo file contiene: codice valuta 3 cifre, codice numerico, denominazione in italiano, denominazione in inglese.

ISO-3166
ISO-4217