Trattamento dei separatori in indicizzazione archivi eXtraWay

Autore:
Tirabassi Roberto

Introduzione ai separatori

Il server eXtraWay sottopone i diversi canali di ricerca ad indicizzazione traendo da quest'attività dei vocabolari di termini da usarsi per compiere le selezioni.

Fatta salva la presenza di particolari tipi di canali di ricerca (md5, fil_name, ecc.) il server compie un principale distinguo tra canali mono valore e multi valore. Per i primi, l'intero contenuto (normalizzando spazi e caratteri di interpunzione) viene considerato una sola, singola chiave. Per i secondi il contenuto viene tokenizzato e da esso vengono estratti i singoli termini che rappresentano le chiavi del vocabolario che verranno create. La determinazione di queste chiavi si compie per mezzo dei separatori.

Sono considerati separatori quei caratteri che, al pari dello spazio che è il separatore per eccellenza, non appartengono ad alcun termine valido. Come detto, il più naturale di essi è certo lo spazio, ma al contempo, caratteri come i tabulatori, i riporti a capo, il trattino, i simboli di interpunzione e così via sono da considerarsi come separatori.

L'uso dei separatori giunge in eXtraWay dopo l'esperienza accumulata in HighWay ma con un implementazione che, va ammesso, è più contenuta. Se è vero che in HighWay era concesso esprimere per ogni singolo canale di ricerca (definiti in quell'accezione Campi) un particolare set di separatori, in eXtraWay questo livello di dettaglio non è stato implementato in quanto le applicazioni che ne hanno fatto effettivamente uso erano una tale minoranza da non risultare significative. Al contrario si è sentita chiaramente l'esigenza di poter indicare come separatori molti caratteri che in precedenza non erano considerati tali.

Al fine di ampliare il numero dei separatori di default, quindi, si è finito con l'assumere che un parco archivi si sarebbe fondamentalmente basato sullo stesso set di separatori commettendo la leggerezza di ritenre che questa configurazione generica potesse andar bene un po' per tutti.
L'esperienza ci ha insegnato che le cose risultano più complesse di quanto non potessimo originariamente ritenere quindi la scelta di compiere questa configurazione generica è da considerarsi sbagliata perché sfugge troppo facilmente al controllo.
Non essendo ancora stata abolita o aggirata in altra maniera essa viene riportata per dovere di cronaca.

La configurazione dei separatori di default di tutti gli archivi si compie per mezzo di una voce nel file xw.ini. Tale voce (voce di configurazione Default nella sezione Separatori) riporta l'elenco degli intervalli di caratteri nel set WinLatin1 che devono essere considerati separatori.
Vediamo il seguente esempio:

[Separatori]
Default=1-47 58-63 91-96 123-160 163-191 247 255

Nell'elenco indicato sono separatori tutti i caratteri tra 1 e 47 (valori decimali che indicano i caratteri sino al '/' compreso, l'ultimo carattere del set che precede i numeri, poi l'intervallo che va dal carattere ':' al carattere '@' (quindi dal primo carattere che segue in numeri al primo carattere che precede le lettere) e così via. Si noti che l'ultima parte dell'elenco mostra non un intervallo di valori ma due valori secchi.

Nota:
Quella espressa nell'esempio precedente è la configurazione di default per il server eXtraWay. In futuro potebbe risultare hard coded nel server stesso essendo pericolosa la sua modifica.
Intervenire su questa configurazione ha impatti su tutti gli archivi gestiti da quest'installazione del server. Lo stesso archivio trasportato altrove non avrà più lo stesso comportamento con evidenti incongruenze.

Configurazione d'archivio dei separatori

Per intervenire sulla configurazione dei separatori senza intaccare la configurazione generale di cui al precedente capitolo, si suggerisce quindi di intervenire sul file nomearchivio.conf.xml ed indicare la configurazione voluta per l'archivio.

Nota:
Attualmente non è possibile diversificare la configurazione dei separatori per ogni singolo canale di ricerca.

Volendo configurare una diversa sequenza di caratteri separatori per un archivio si deve agire creando una voce di profilo a nome separs.default ove indicare, con una sintassi formalmente uguale a quella già vista, l'elenco dei codici di caratteri separatori secondo l'encoding WinLatin1...

...
   <profile type="separs.default" value="1-47 58-63 91-96 123-160 163-191 247 255"/>
...

Nell'esempio precedente sono stati dichiarati gli stessi separatori di default.

Nell'ipotesi di voler escludere alcui caratteri dal set dei separatori, ad esempio il trattino '-' e l'underscore '_', questa riga verrebbe modificata come segue...

...
   <profile type="separs.default" value="1-44 46-47 58-63 91-94 96 123-160 163-191 247 255"/>
...

...dal momento che il trattino è il carattere 45 mente l'underscore è il carattere 95.

Date
2006/03/08 08:31:19

Torna a Indice delle voci


HighWay/eXtraWay Project - Frequently Asked Questions (Doxygen 1.6.1)