2010-08-10 15 views
5

Mam naprawdę duże pole tekstowe (5000+ znaków) w SOLR o nazwie Opis. Do tej pory działa świetnie do wyszukiwania i wyróżniania. Jeśli wykonuję wyszukiwanie i nie ma podświetlonych części, pokazuję tylko pierwszych 300 znaków. Chciałbym tylko zwrócić 300 znaków w wyniku SOLR.Jak mogę zwrócić tylko uciętą część pola w SOLR?

Chciałbym to zrobić, ponieważ podczas testów uzyskuję lepszą wydajność, jeśli zwrócę mniejszy wynik. Jest tak prawdopodobnie dlatego, że dokument XML jest mniejszy, więc mniej czasu w drucie, a następnie przetwarzanie jest szybsze, ponieważ dokument jest mniejszy.

Myślałem o użyciu nowego pola, które po prostu zachowało pierwsze 300 znaków. Myślę, że to zadziała, ale zastanawiałem się, czy istnieje lepsze lub bardziej natywne rozwiązanie.

Odpowiedz

7

To, czego szukasz, to wyróżnienie hl.maxAlternateFieldLength (http://wiki.apache.org/solr/HighlightingParameters#hl.maxAlternateFieldLength).

Będziesz musiał zdefiniować pole jako własne pole alternatywne. Jeśli chcesz, aby podświetlić pole Description parametry zapytań podświetlane byłoby:

hl=true 
hl.fl=Description 
f.Description.hl.alternateField=Description 
hl.maxAlternateFieldLength=300 

Wreszcie, aby pominąć pole Description z wyniku zapytania, trzeba będzie wykluczyć go z parametrem fl zapytania:

fl=score,url,title,date,othermetadata 
+0

Fantastyczny, dokładnie to, czego potrzebowałem i działa idealnie. –

Powiązane problemy