2012-01-14 15 views
10

Sto cercando di impostare alcuni sinonimi di base in Solr. Quello che ho lavorato è:Come far funzionare i sinonimi solr

ci, Stati Uniti, stati uniti

La mia comprensione è che l'aggiunta che al file sinonimo permetterà agli utenti di cercare per gli Stati Uniti, e tornare documenti contenenti USA o nel Regno stati. Idem per se un utente inserisce negli Stati Uniti o negli Stati Uniti.

Sfortunatamente, con questo in posizione, quando eseguo una ricerca, ottengo i risultati per gli elementi che contengono tutte e tre le parole: sta eseguendo un AND dei sinonimi piuttosto che un OR.

Se accendo il debug, questo è davvero quello che vedo (più alcuni derivanti):

(+DisjunctionMaxQuery(((westCite:us westCite:usa westCite:unit) | (text:us text:usa text:unit) | (docketNumber:us docketNumber:usa docketNumber:unit) | ((status:us status:usa status:unit)^1.25) | (court:us court:usa court:unit) | (lexisCite:us lexisCite:usa lexisCite:unit) | ((caseNumber:us caseNumber:usa caseNumber:unit)^1.25) | ((caseName:us caseName:usa caseName:unit)^1.5))))/no_coord

sto facendo qualcosa di sbagliato per causare questo? My defaultOperator è impostato su AND, ma mi aspetto che il filtro dei sinonimi lo capisca.

risposta

2

Per una migliore comprensione della ricerca sinonimo avremo processo graduale di attuazione (sto usando solr 6.5 * versione.):

Fase 1:

Scaricare file di testo country-synonyms.txt e inserirlo nel percorso di seguito:

Path: \ solr-6.5.1 \ server \ solr \ yourCore \ conf

yourCore: Nome del nucleo deve essere modificata di conseguenza

Fase 2:

Aggiungi tipo di campo nel file gestito nello schema nello stesso percorso indicato sopra:

Fase 3: Aggiungi il tuo campo (Nazionalità) con il tipo di paese nel stesso file (gestito-schema).

<field name="Nationality" type="country" indexed="true" stored="true"/> 

Fase 4: Restart solr.

solr restart -p <your solr port> 

Fase 5:.

Ora importare i dati con campo contenente Nazionalità ***

Passo 6:

Ora query con casi al di sotto e di prova :

Query:

  1. Nazionalità: USA
  2. Nazionalità: USA
  3. Nazionalità: Stati Uniti
  4. Nazionalità: Stati Uniti d'America

Tutte le domande di cui sopra vi darà lo stesso risultato.

Nota: *** Importa dati solo dopo aver eseguito i passaggi precedenti, incluso il riavvio solr. Potrebbe non funzionare su dati esistenti (per ulteriori dettagli, consultare: AnalyzersTokenizersTokenFilters)