2010-04-21 8 views

Odpowiedz

15

To zależy od konfiguracji pola, które mają być informacje.

Jeśli konfiguracja analizatora indeksującego zawiera element StopFilterFactory, to słowa przestankowe nie są po prostu indeksowane, więc nie można ich później wyszukiwać. Ponieważ jednak Solr utrzymuje pozycję terminów w indeksie, możesz polecić jej zwiększenie wartości pozycji pozostałych warunków, aby odzwierciedlić fakt, że pierwotnie istniały inne warunki.

W „enablePositionIncrements” Oto klucz do osiągnięcia tego celu:

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

Jeśli analizator zapytań ma również StopFilterFactory skonfigurowany z tymi samymi ustawieniami, zapytanie powinno działać zgodnie z oczekiwaniami.

Zobacz ten link do szczegółów: http://www.lucidimagination.com/search/document/CDRG_ch05_5.6.18

+0

Dziękuję, to właśnie potrzebowałem – Ruth

+0

Tak trudno znaleźć dokładną definicję atrybutu enablePositionIncrements. Dzięki stary! – BFree

2

jakie miałem też szczęście używając CommonGramsFilterFactory aby osiągnąć podobne wyniki, kładąc to w odpowiednim miejscu w swojej deklaracji FieldType.

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

Nie wiem, jak dobrze działa z enablePositionIncrements = "true" włączone w StopFilterFactory. Musisz również uruchomić Solr 1.4, aby z niego skorzystać.

+0

Dziękuję bardzo, to jest przydatne wiedzieć – Ruth

Powiązane problemy