Siamo diventati più rilevanti
- 20 July 2012
- Giulio
- 0
Nell'ultimo mese, tra un aggiornamento dei server e una nuova installazione di Clavis, ci siamo preoccupati di analizzare e migliorare le ricerche di DiscoveryNG. Come forse sapete il nostro OPAC si basa su Solr, un motore di ricerca sviluppato da Apache come parte del progetto Lucene, nato soprattutto per l'indicizzazione full-text di documenti. Grazie alla sua adozione abbiamo la possibilità di utilizzare il sistema a faccette durante la navigazione dei risultati e, soprattutto, applicare l'ordinamento per "rilevanza".
Il concetto di rilevanza dei risultati di una ricerca è legato alla possibilità di assegnare un punteggio ad ogni documento recuperato per poter indicare quale corrisponde con maggiore probabilità ai termini ricercati. Questo deriva dal fatto che la stringa di ricerca potrebbe non comparire esattamente nella forma inserita oppure potrebbe assumere una diversa importanza a seconda dei punti del documento in cui si trova.
Non è semplice spiegare come Lucene/Solr calcola il punteggio che determina la rilevanza. Le seguenti sono solo alcune delle regole principali:
- più volte il termine compare nel documento, maggiore è il punteggio
- la corrispondenza con termini rari vale più della corrispondenza con termini comuni (si intende rari o comuni all'interno dei documenti indicizzati)
- se vengono ricercati più termini, più vicini sono tra loro e più ne vengono trovati, maggiore sarà il punteggio
In contesto biblioteconomico i "documenti" che il motore di ricerca si occupa di trovare sono prevalentemente record bibliografici, ovvero descrizioni standardizzate di altri documenti. Lo standard che viene utilizzato per queste descrizioni è l'UNIMARC, che associa un campo distinto ad ogni elemento della descrizione.
Oltre alle regole precedenti, grazie a Lucene/Solr, abbiamo la possibilità di associare un diverso punteggio a seconda delle parti del record UNIMARC in cui vengono trovate le parole immesse nella ricerca (query boosting). Tecnicamente questo viene fatto moltiplicando il punteggio ottenuto per un certo valore (boost). Di seguito trovate la nostra configurazione standard per le query di ricerca su Solr fatte da DiscoveryNG utilizzando il campo di ricerca a tutto testo.
|
Area di ricerca |
Campi UNIMARC |
Boost |
|
Titolo proprio |
200 $a |
10000 |
|
Responsabilità principale |
700 |
1000 |
|
Titolo uniforme |
500 $a |
|
|
Nome dell'editore |
210 $c |
|
|
Soggetti |
dal 600 al 617 |
|
|
Titoli collegati |
423 $t |
100 |
|
Altre responsabilità intellettuali |
200 $f |
|
|
Forme varianti del titolo |
5XX |
10 |
|
Note |
3xx |
|
|
Descrizione fisica del materiale |
215 $a |
- |
|
Data di pubblicazione |
100 $a (posizione 9-12) |
|
|
Numeri Standard (EAN/ISBN/ISSN) |
010 |
Prima di questo intervento la ricerca veniva fatta sull'intero record, ora abbiamo scelto di isolare meglio alcuni campi del tracciato UNIMARC, definendo 4 livelli di boosting. Questo comporta che i risultati conterranno i termini ricercati:
- prima nel titolo proprio
- quindi nel titolo uniforme, in altre parti del titolo, nel campo autore o editore, tra i soggetti
- quindi tra i legami con altri documenti oppure nelle restanti responsabilità intellettuali
- quindi nelle forme varianti del titolo oppure tra le note
Sono presenti anche altri campi senza boost che ci permettono di integrare nella ricerca a tutto testo alcuni valori comunemente usati in OPAC. Questo tipo di approccio deriva dalla necessità di dover gestire molti tipi di input diversi in fase di ricerca. Sebbene i nostri dati sull'utilizzo degli OPAC dimostrino che la maggior parte degli utenti va a colpo sicuro sul nome dell'autore o sul titolo, esistono diversi casi di combinazioni titolo+autore oppure autore+editore (per non parlare del termine di ricerca più usato in assoluto che è "dvd"). Assegnando un certo boost anche ai soggetti e alle note abbiamo cercato di rispondere anche alle ricerche del tipo "vorrei qualcosa che parla di".
L'uso del boost non viene fatto solo nel campo "tutto testo" ma anche, tramite la ricerca avanzata, in altri campi (es. "Autore" o "Titolo"). In ogni caso, prima di andare avanti a implementare tutte le potenzialità di Solr, vorremmo continuare a fare un po' di sperimentazioni su questa configurazione (e aspettare il rilascio della versione 4 di Solr). Nel frattempo, se volete, potete testarla anche voi direttamente sui cataloghi online che stanno usando DiscoveryNG. ;)
Per questo lavoro, oltre a ringraziare il progetto Lucene/Solr e l'Extended DisMax query parser, è doveroso citare un post della Library of Wisconsin-Madison University (che ha un bellissimo catalogo basato su Twitter/Bootsrap) che ci ha ispirato per questo articolo.
Commenti
Nessuno ha aggiunto ancora un commento in questa pagina.
