Siamo diventati più rilevanti

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
200 $c

10000

Responsabilità principale
(voce d'authority)
[da questo gruppo escludiamo alcuni relator codes]

700
701
709 (forme di rinvio)

1000

Titolo uniforme
Altra parte del titolo
Titolo della serie

500 $a
200 $d
200 $e
200 $h
200 $i
225 $a

Nome dell'editore

210 $c
210 $g

Soggetti

dal 600 al 617

Titoli collegati
Note di contenuto

423 $t
454 $t
461 $t
410 $t
327 $a

100

Altre responsabilità intellettuali
[da questo gruppo escludiamo alcuni relator codes]

200 $f
200 $g
7XX

Forme varianti del titolo

5XX
restanti sottocampi del 200

10

Note
[escluso il campo 327]

3xx

Descrizione fisica del materiale

215 $a

-

Data di pubblicazione

100 $a (posizione 9-12)

Numeri Standard (EAN/ISBN/ISSN)

010
011
073

 

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.

Share this awesome post!

Commenti

Nessuno ha aggiunto ancora un commento in questa pagina.

Inserisci il tuo commento