2010-04-21 14 views

risposta

15

Essa dipende dalla configurazione del campo che si sta eseguendo la query.

Se la configurazione dell'analizzatore di indicizzazione include un StopFilterFactory, le stopword non vengono semplicemente indicizzate, quindi non è possibile eseguire una query in seguito. Ma poiché Solr mantiene la posizione dei termini nell'indice, puoi istruirlo a incrementare il valore di posizione dei termini rimanenti per riflettere sul fatto che, originariamente, c'erano altri termini nel mezzo.

I "enablePositionIncrements" qui è la chiave per raggiungere questo:

<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/> 

Se l'analizzatore interrogazione ha anche la StopFilterFactory configurato con le stesse impostazioni, la query dovrebbe funzionare come previsto.

Vedere questo link per ulteriori informazioni: http://www.lucidimagination.com/search/document/CDRG_ch05_5.6.18

+0

Grazie, è quello che mi serviva – Ruth

+0

È così difficile trovare la definizione esatta dell'attributo enablePositionIncrements. Grazie amico! – BFree

2

Ho anche avuto la fortuna utilizzando il CommonGramsFilterFactory per ottenere risultati simili per mettere questo nel luogo appropriato nella dichiarazione fieldType.

<filter class="solr.CommonGramsFilterFactory" words="stopwords.txt" ignoreCase="true"/> 
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/> 

Non so come funziona con enablePositionIncrements = "true" abilitati nella StopFilterFactory. È inoltre necessario eseguire 1.4 solr per utilizzare questo.

+0

Grazie mille, è utile saperlo – Ruth

Problemi correlati