2011-12-01 10 views
9

Devo definire più query filtro nella mia query ma con operazione OR. Immagina che ci siano fq1, fq2 e fq3. Ora vorrei la mia domanda filtro finale per essere:Richieste filtro multiple con operazioni OR in Solr

FQ = FQ1 E FQ2 O fq3

Esiste un modo di gestire la cosa in Solr?

risposta

3

Questo non è possibile in Solr. Sarebbe bello se tu potessi definire le tue query sui filtri e poi specificare separatamente la logica booleana che dovrebbe essere applicata tra di loro.

Alcuni anni fa ho creato un Jira issue sperando di vederlo essere aggiunto.

-1
+fq:fq1 +(fq2:fq2 fq3:fq3) <-- if default query filter type is OR 
+1

Sei sicuro che funzioni? Ho sperato in questa funzione per un po ', vedi qui: https://issues.apache.org/jira/browse/SOLR-1223 – brian519

+0

Soli, sto pensando che lo stesso si possa fare usando la query normale (non la query del filtro) – ajreal

5

Sembra che ora SOLR (> 4.5) supporta questo tipo di query, ovvero

FQ = (field1: valore1 OR field2: value2)

+1

Secondo la documentazione di 'fq' per Solr 4.9, [" Le query di filtro possono implicare query booleane complicate. "] (https://cwiki.apache.org/confluence/display/solr/Common+Query+Parameters # CommonQueryParameters-Thefq% 28FilterQuery% 29Parameter), che afferma che sei corretto. Conosci qualche esempio a cui potresti collegarti? – frances

+0

Non sono riuscito a trovare alcun riferimento online che citi. Tuttavia, l'ho provato in un'applicazione che attualmente sviluppo e funziona bene. – Zouzias

2

si può fare qualcosa di simile:

fq=fieldA:(valueA OR valueB) OR fieldB:valueC

Problemi correlati