Ritorno alla pagina principale

Sintassi delle interrogazioni

Questa pagina fornisce una panoramica della sintassi disponibile per le interrogazioni a partire da quelle più semplici fino a quelle avanzate. La sintassi delle interrogazioni proviene da Apache Lucene, il motore di ricerca che sta alla base di DocFetcher e che è descritto in maniera più tecnica sul sito di Lucene alla pagina sintassi delle interrogazioni.

Operatori booleani

DocFetcher supporta gli operatori booleani OR, AND e NOT. Se le parole sono concatenate senza operatori booleani, DocFetcher le tratta come se fossero concatenate mediante l'operatore OR. Se però ciò non soddisfa l'utilizzatore di DocFetcher, questi può andare nelle preferenze e impostare l'operatore AND come predefinito.

Invece di OR, AND e NOT, è anche possibile usare, rispettivamente ||, && e "-" (segno meno). Per raggruppare certe espressioni si possono usare anche le parentesi. Ecco alcuni esempi:

Interrogazione I documenti risultanti contengono…
cane OR gatto cane o gatto (o entrambi)
cane AND gatto cane e gatto (entrambi)
cane gatto In modalità predefinita è equivalente all'interrogazione cane OR gatto
cane NOT gatto cane, ma non gatto
-cane gatto gatto, ma non cane
(cane OR gatto) AND topo topo e o cane o gatto (o entrambi)

Ricerca indipendente dall'uso delle maiuscole o delle minuscole

DocFetcher non distingue fra caratteri maiuscoli e minuscoli, pertanto non ha importanza se le parole da ricercare sono scritte tutte in minuscolo o tutte in maiuscolo o se ne sono una mescolanza. Le sole eccezioni sono le parole-chiave OR, AND, NOT e TO che debbono essere sempre inserite in MAIUSCOLO. Nota: per quanto riguarda la parola-chiave TO si veda la sottostante sezione "Ambito di ricerca".`

Ricerca di frasi e di termini specifici

Per cercare una frase (cioè una sequenza ordinata di parole), bisogna inserire tale sequenza fra doppie virgolette. Per indicare che i documenti da ricercare debbono contenere una particolare parola, bisogna farla precedere dal segno '+'. Naturalmente è possibile combinare questi costrutti con operatori booleani e parentesi. Alcuni esempi:

Interrogazione I documenti risultanti contengono…
"cane gatto topo" le parole cane, gatto e topo, in questo specifico ordine
+cane gatto sicuramente cane e forse anche gatto
"cane gatto" AND topo la frase (= precisa sequenza di parole) cane gatto e, inoltre, la parola topo
+cane +gatto Equivalente all'interrogazione cane AND gatto

Caratteri "jolly"

Per indicare che taluni caratteri sono sconosciuti o che possono assumere valori differenti, si possono usare il punto di domanda ('?') e l'asterisco ('*'). Il punto di domanda sostituisce esattamente un carattere sconosciuto, mentre l'asterisco sostituisce un numero variabile di caratteri sconosciuti (da zero a 'n'). Per esempio:

Interrogazione I documenti risultanti contengono…
luc? lucy, luca...
luc* luc, lucy, luce, lucene...
*ene* lucene, energia, generatore...

Nota: se un carattere jolly viene usato come primo carattere di una parola, la ricerca tende ad essere più lenta. Ciò è dovuto a come è strutturato l'indice: è come se si cercasse di trovare il numero di telefono di una persona conoscendone solo il nome e non il cognome. Pertanto, nell'esempio sopra riportato, la ricerca di *ene* sarà probabilmente più lenta di altre ricerche perché *ene* inizia con un carattere jolly.

Ricerche per analogia ("Fuzzy Searches")

Le ricerche per analogia consentono di cercare parole analoghe ad una parola data. Per esempio, se si cerca la parola vist~, DocFetcher troverà quei documenti che contengono parole quali vista, lista e pista.

È anche possibile inserire una "soglia di analogia" che ha un valore compreso fra 0 e 1. Per esempio: vist~0.8. Più alto è il valore della soglia, più elevata deve essere anche l'analogia con le parole che vengono proposte nei risultati della ricerca. Se non si imposta alcuna soglia, viene assunto il valore soglia predefinito che è pari a 0.5.

Ricerche per prossimità

Le ricerche per prossimità consentono di trovare delle parole che sono situate ad una specifica distanza fra di loro. Per eseguire una ricerca di prossimità bisogna inserire una tilde ('~') alla fine della frase, seguita da un valore di distanza. — Si noti che ciò risulta sintatticamente simile ad una ricerca per analogia. Per esempio, per ricercare quei documenti che contengono i termini wikipedia e lucene ad una distanza di non più di 10 parole l'uno dall'altro, bisogna digitare: "wikipedia lucene"~10.

Fattore di rafforzamento

È possibile influenzare la rilevanza nell'ordinamento dei risultati assegnando alle parole dei "pesi" personalizzati. Per esempio: se si scrive: cane^4 gatto invece di cane gatto, i documenti che contengono la parola cane riceveranno un punteggio più alto e si porteranno tra i documenti che sono in testa alla classifica dei risultati.

Sebbene il fattore di rafforzamento debba essere necessariamente rappresentato da un valore positivo, esso può anche essere inferiore ad 1 (per esempio 0.2). Se non si usa alcun fattore di rafforzamento, esso assume il suo valore predefinito, cioè 1.

Ricerca in campi specifici

DocFetcher, in modalità predefinita, ricerca tutti i dati testuali che è in grado di estrarre, cioè il contenuto, il nome del file e i metadati di ciascun documento. È anche possibile restringere le ricerche al solo nome del file e/o a certi campi di metadati. Per esempio, per cercare i documenti i cui titoli contengono il termine wikipedia, bisogna scrivere: title:wikipedia. La ricerca in campi specifici può essere combinata con la ricerca di frasi, per esempio: title:"cane gatto" o con l'uso di parentesi, per esempio: title:(cane gatto). Se infatti si omettono le doppie virgolette e le parentesi solo il termine cane verrà confrontato con il contenuto del titolo e non il termine gatto.

Quali siano i campi specifici disponibili dipende generalmente dal formato del documento. In ogni caso si possono seguire queste linee-guida:

Ambito di ricerca

DocFetcher consente la ricerca di parole che siano lessicograficamente comprese tra due altre parole. Per esempio, la parola beta è compresa fra alfa e gamma. Pertanto se si vuole l'elenco dei documenti che contengono le parole comprese tra alfa e gamma, si deve scrivere: [alfa TO gamma].

Quando si usano le parentesi quadre, l'ambito di ricerca è inclusivo, cioè i termini alfa e gamma sono compresi nei risultati della ricerca. Per definire un ambito di ricerca che non comprenda gli estremi (ambito di ricerca esclusivo), bisogna invece usare le parentesi graffe: {alfa TO gamma}.

Si possono anche combinare ambiti di ricerca e campi di ricerca come segue: title:{alfa TO gamma} e ciò restringe l'ambito di ricerca solo al campo "title".