Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
Entrambe le parti precedenti la revisione Revisione precedente Prossima revisione | Revisione precedente Prossima revisione Entrambe le parti successive la revisione | ||
liquens:advanced [2012/11/27 10:52] gbonanome [Query Solr] |
liquens:advanced [2014/03/25 17:48] gbonanome |
||
---|---|---|---|
Linea 31: | Linea 31: | ||
- | ===== Parametri via URL ===== | + | ===== Campi di ricerca speciali ===== |
- | In DNG è possibile passare campi di ricera direttamente via URL. Osservando ad esempio la **ricerca semplice** si può notare che il campo //tutto testo// viene indicato con %%q=%% | + | In DNG è possibile passare **campi di ricera direttamente tramite URL**. Osservando ad esempio la **ricerca semplice** si può notare che il campo //tutto testo// viene indicato con **q=**. |
<code> | <code> | ||
Linea 46: | Linea 46: | ||
alla fine dell'URL, dopo il **?** sono presenti uno o più campi di ricerca indicati con la sintassi //nome campo=termine di ricerca//. Nel caso di più termini questi sono concatenati dal simbolo **+**. | alla fine dell'URL, dopo il **?** sono presenti uno o più campi di ricerca indicati con la sintassi //nome campo=termine di ricerca//. Nel caso di più termini questi sono concatenati dal simbolo **+**. | ||
- | In questa struttura non è possibile concatenare campi tramite operatori booleani, infatti facendo una ricerca avanzata è possibile notare che l'URL di ricerca è diverso: | + | In questa struttura non è possibile concatenare diversi campi di ricerca tramite operatori booleani, infatti facendo una ricerca avanzata è possibile notare che l'URL è diverso: |
<code> | <code> | ||
Linea 54: | Linea 54: | ||
Preceduti dalla dicitura //field_n=// sono comunque visibili i campi di ricerca a disposizione dell'utente. Nell'esempio riportato ci sono i campi //title// e //auhta// che permettono di cercare il campo titolo e autore. | Preceduti dalla dicitura //field_n=// sono comunque visibili i campi di ricerca a disposizione dell'utente. Nell'esempio riportato ci sono i campi //title// e //auhta// che permettono di cercare il campo titolo e autore. | ||
- | ==== Query Solr ==== | ||
- | Apponendo all'URL di ricerca il campo //solr// è possibile utilizzare la [[http://wiki.apache.org/solr/SolrQuerySyntax|sintassi Solr]] per ricercare qualsiasi campo a disposizione. | + | <WRAP info round> |
+ | == Elenco dei campi a disposizione == | ||
+ | Per l'elenco completo dei campi di ricerca a disposizione vedi la tabella della pagina [[liquens:codici_e_campi#campi_di_ricerca|Codici e campi]]. | ||
+ | </WRAP> | ||
+ | |||
+ | |||
+ | ==== bid ==== | ||
+ | |||
+ | Questo campo permette di utilizzare per la ricerca il numero identificativo della notizia assegnato dalla sorgente di importazione in Clavis. | ||
<code> | <code> | ||
- | opac/search/lst?solr=mrc_d200_sa:nome+della+rosa | + | opac/search/lst?bid=UBO2898455 |
</code> | </code> | ||
- | Nell'esempio qui sopra viene fatta una ricerca nel //sottocampo a// del //campo 200// dell'UNIMARC. Come si può notare, in Solr viene mantenuto il riferimento alla struttura UNIMARC attraverso una codifica dei campi del tipo //mrc_d{codice campo}_s{codice sottocampo}// (questo vale per tutti i campi, ad eccezione dei campi codificati, ovvero quelli compresi tra il 100 e il 199) | + | Nell'esempio viene usato il codice SBN del titolo "Il cuore delle cose / Natsume Sōseki" |
- | ==== Parametri di ordinamento ==== | + | |
+ | ==== standard-number ==== | ||
+ | |||
+ | Questo campo permette di utilizzare nella ricerca un qualsiasi **numero standard**, quindi anche l'EAN o ISBN, nel formato privo di trattini o spazi. | ||
+ | |||
+ | <code> | ||
+ | opac/search/lst?standard-number=8854500925 | ||
+ | </code> | ||
+ | |||
+ | Nell'esempio viene usato il numero ISBN del titolo "Il cuore delle cose / Natsume Sōseki" | ||
+ | |||
+ | ==== solr ==== | ||
+ | |||
+ | Il campo **solr** permette di utilizzare la [[http://wiki.apache.org/solr/SolrQuerySyntax|sintassi Solr]] per ricercare qualsiasi campo UNIMARC indicizzato. | ||
+ | |||
+ | <code> | ||
+ | opac/search/lst?solr=(mrc_d200_sa:nome+della+rosa) AND (mrc_d210_sc:bompiani) AND (mrc_d950_sf:n eco) | ||
+ | </code> | ||
+ | |||
+ | Nell'esempio qui sopra viene fatta una ricerca nei campi UNIMARC: **200 $a**, **210 $c**, **950 $f**. Come si può notare, in Solr vengono indicizzati i campi UNIMARC con una struttura del tipo //mrc_d{codice campo}_s{codice sottocampo}// (questo vale per tutti i campi, ad eccezione di quelli codificati, ovvero quelli compresi tra il 100 e il 199). | ||
+ | Come prevede la [[http://wiki.apache.org/solr/SolrQuerySyntax|sintassi Solr]], dopo il campo indicizzato, seguito da **:** va inserito il valore della ricerca (case insensitive). | ||
+ | |||
+ | La maggior parte dei campi e sottocampi UNIMARC è ricercabile dall'utente attraverso la pagina di Ricerca Avanzata, tuttavia ne esistono alcuni particolari utilizzati da ClavisNG, che permettono di incrociare diverse informazioni gestionali. | ||
+ | |||
+ | Di seguito pubblichiamo un elenco di alcuni campi gestionali indicizzati e il loro significato: | ||
+ | |||
+ | ^ campo ^ significato ^ | ||
+ | ^ mrc_d950_sa |ID Clavis della biblioteca di gestione | | ||
+ | ^ mrc_d950_sb |Serie inventariare | | ||
+ | ^ mrc_d950_sc |Numero di inventario | | ||
+ | ^ mrc_d950_sd |Sezione | | ||
+ | ^ mrc_d950_se |Altezza | | ||
+ | ^ mrc_d950_sf |Collocazione | | ||
+ | ^ mrc_d950_sg |Specificazione | | ||
+ | ^ mrc_d950_sh |Sequenza 1 | | ||
+ | ^ mrc_d950_si |Sequenza 1 | | ||
+ | ^ mrc_d950_sj |Codice dello stato dell'esemplare | | ||
+ | ^ mrc_d950_sm |Valore inventariale | | ||
+ | ^ mrc_d950_sq |Codice dello stato fisico della copia | | ||
+ | ^ mrc_d950_su |Codice della sorgente d'acquisto | | ||
+ | ^ mrc_d950_s1 |Classe di prestabilità | | ||
+ | ^ sorti_usage |Numero di prestiti fatti con il titolo | | ||
+ | ^ sorti_requests |Numero di prenotazioni presenti sul titolo | | ||
+ | |||
+ | <WRAP info round> | ||
+ | == Informazioni sulla copia nel tracciato UNIMARC == | ||
+ | È bene considerare che ciascun record restituito dal Solr comprende tanti **d950** quante sono le copie legate al titolo. Tuttavia, poichè **viene indicizzato singolarmente ciascun sottocampo**, non è possibile incrociare tra loro diversi sottocampi avendo la certezza che corrispondano alla stessa copia | ||
+ | |||
+ | Ad esempio la seguente query | ||
+ | <code> | ||
+ | opac/search/lst?solr=mrc_d950_sf:Magazzino AND mrc_d950_sa:37 | ||
+ | </code> | ||
+ | |||
+ | restituisce titoli dove compaiono sia copie nella sezione Magazzino che copie gestite dalla biblioteca 37. Tuttavia non necessariamente tutti i titoli ottenuti come risultato avranno copie della biblioteca 37 con sezione Magazzino. Potrebbero esserci titoli per cui esiste una copia della biblioteca 37 ma con diversa sezione, mentre è presente al contempo una copia di un'altra biblioteca con sezione Magazzino | ||
+ | </WRAP> | ||
+ | |||
+ | === Ricerca per intervallo === | ||
+ | |||
+ | È possibile indicare un intervallo di valori contenuti nei campi //mrc// utilizzando la sintassi %%[* TO *]%% dove l'asterisco rappresenta //qualsiasi valore// ed è sostituibile da uno o più caratteri o numeri. | ||
+ | |||
+ | <code> | ||
+ | opac/search/lst?solr=mrc_d950_sl:[a TO c] | ||
+ | </code> | ||
+ | |||
+ | Ricerca i titoli per cui esistono copie con collocazione compresa da A a C. | ||
+ | |||
+ | <code> | ||
+ | opac/search/lst?solr=sorti_usage:[100 TO *] | ||
+ | </code> | ||
+ | |||
+ | Ricerca i titoli andati a prestito più di 100 volte. | ||
+ | |||
+ | ===== Parametri di ordinamento ===== | ||
+ | |||
+ | Nella query di ricerca passata via URL è possibile specificare anche l'ordinamento che si intende ottenere, utilizzando il parametro **sort** | ||
+ | |||
+ | <code> | ||
+ | /opac/search/lst?q=cent'anni+di+solitudine&sort=titleasc | ||
+ | </code> | ||
+ | |||
+ | L'esempio mostra i risultati di una ricerca semplice ordinata per Titolo (A-Z), usando il parametro **&sort=titleasc** | ||
+ | |||
+ | Per l'elenco completo dei campi di ordinamento vedi la relativa tabella della pagina [[liquens:codici_e_campi#campi_di_ordinamento|Codici e campi]]. |