Ich habe eine SOLR-Abfrage, die alle Felder abrufen soll, außer einem Feld.
Angenommen, ich habe 20 Felder, muss ich die 19 Felder, die ich abfragen möchte, fest im
&fl=[f],[f],[f],....[f]'
programmieren
Oder gibt es eine Möglichkeit, etwas ähnliches zu tun wie% code%% /%
&fl=*,![f]'
steht für einen Feldnamen.
Leider ist die Möglichkeit, einen Feldnamen über die Abfragezeichenfolge zu entfernen, immer noch eine ausstehende Verbesserungsanfrage. Weitere Informationen finden Sie unter SOLR-3191 .
Bis diese Verbesserung implementiert ist, müssen Sie alle 19 Felder im Parameter fl
angeben. Sie können jedoch Ihren standardmäßigen /select
requestHandler aktualisieren, um die 19 Felder zu definieren, die Sie als Standardeinstellung zurückgeben möchten, die auf alle Abfragen angewendet werden, sofern sie nicht in der Abfragezeichenfolge überschrieben werden.
Hier ist eine modifizierte Version des standardmäßigen /select
requestHandler aus dem Beispiel solrconfig.xml:
Weitere Informationen zu diesen Standardeinstellungen und der Konfiguration von requestHandler finden Sie unter RequestHandlers und SearchComponents in SolrConfig .
Eine weitere Option könnte sein: Felder, die Sie einbeziehen möchten, sollten ein gemeinsames Präfix verwenden; obendrein können Sie in Ihrem FL Globs verwenden. Wenn Sie zum Beispiel annehmen, dass das Präfix enthalten sein soll, können Sie einen fl-Wert wie
habensollte enthalten sein *.
Eine weitere Option wäre die Verwendung des Document Transformer ValueAugmenterFactory um den tatsächlichen Rückgabewert des Feldes durch eine leere Zeichenfolge zu ersetzen.
Dies sollte funktionieren, wenn Sie lediglich die Rückgabe des Inhalts dieses Feldes vermeiden möchten.
Es folgt ein Beispiel, das den Inhalt des Titelfeldes ersetzt:
%Vor%Tags und Links solr solr-query-syntax