2010-04-21 4 views

Antwort

15

Es ist auf der Konfiguration des Feldes ab, die Sie abfragen.

Wenn die Konfiguration des Indexanalysators eine StopFilterFactory enthält, werden die Stoppwörter einfach nicht indiziert, sodass Sie sie anschließend nicht abfragen können. Aber da Solr die Position der Begriffe im Index behält, können Sie ihn anweisen, den Positionswert der verbleibenden Begriffe zu erhöhen, um der Tatsache Rechnung zu tragen, dass ursprünglich andere Begriffe dazwischen lagen.

Die „enablePositionIncrements“ hier ist der Schlüssel um das zu erreichen:

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

Wenn der anfragende Analysator auch die StopFilterFactory mit den gleichen Einstellungen, Ihre Abfrage konfiguriert hat, sollte wie erwartet funktionieren.

Siehe diesen Link für Details: http://www.lucidimagination.com/search/document/CDRG_ch05_5.6.18

+0

Vielen Dank, das ist, was ich brauchte – Ruth

+0

So schwer zu finden, genaue Definition des Attributs enablePositionIncrements. Danke, Alter! – BFree

2

ich auch die CommonGramsFilterFactory mit hatte Glück ähnliche Ergebnisse zu erzielen, indem diese an der entsprechenden Stelle in der Feldtyp Erklärung setzen.

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

nicht sicher, wie gut es mit enablePositionIncrements = "true" aktiviert im StopFilterFactory funktioniert. Sie müssen auch Solr 1.4 ausführen, um dies zu verwenden.

+0

Vielen Dank, das ist nützlich zu wissen – Ruth

Verwandte Themen