Attualmente sto eseguendo una coppia client/server Solr che funziona correttamente.Il modo corretto di aggiungere parametri di query personalizzati in Solr
Tuttavia, in alcuni casi, la query di filtro (fq
parametri) che viene inviato al Solr è abbastanza grande (può essere migliaia di caratteri) e non possono essere tagliati giù. Poiché l'analisi delle query richiede only a fraction of the overall time, voglio provare a zippare questa parte di query e inviarla a Solr.
Stavo pensando di modificare il client, quindi anziché fq
utilizza un altro parametro (ad esempio zfq
). Solr può quindi decidere - se riceve zfq
, lo utilizza e decodifica i dati in fq
. Altrimenti dovrebbe comportarsi come al solito.
Qual è il modo standard per ottenere quanto sopra? Sembra che ci sia SearchHandler
, requestHandler
, <queryParser
(entrambi in solrconfig.xml) e molti altri e non sono abbastanza sicuro di quale sia il meno invadente. Sono abbastanza fiducioso con Lucene/Tomcat ma non so molto delle strutture dati Solr.
Migliaia di caratteri in un singolo 'fq' non sembrano giusti. Invece di cercare di aggirare le limitazioni, chiediti * perché * stai colpendo quelle limitazioni. Descrivi il tuo problema * reale *. –
Il vero problema non rientra negli obiettivi di questa domanda. Ma se vuoi sentirlo - certo, nessun problema! La lunghezza deriva dal modo in cui vengono implementate le autorizzazioni. Per i clienti che dispongono di ampi set di autorizzazioni, la query di filtro ha il seguente aspetto: "*: * -category: 1 AND -category: 2 AND ... -category: N". Quale è un candidato perfetto per la compressione mentre il modello si ripete. – mindas
hai visto questo problema JIRA sulla sicurezza a livello di documento? https://issues.apache.org/jira/browse/SOLR-1834 –