L'ultima opzione per risolvere questo per me è stato chiedere a StackOverflow.Come OR valore null nella query Apache Solr?
Sto cercando di creare una query Solr per ottenere i documenti che hanno un valore specifico su uno dei suoi campi o che non hanno un valore ...
In teoria, questa query dovrebbe hanno lavorato.
Ecco alcune informazioni:
Query: (nome: john) - count> Risultato: 15383 // Johns
Query: (nome: {* a *}) - -> conteggio Risultato: 61013 // Le persone che hanno un nome
Query: - (nome: {* a *}) -> conteggio Risultato: 216888 // Le persone che non hanno un nome
Ora, quando uso la prima e la terza query in una stessa query con l'operatore OR, mi aspetto di ottenere i risultati (216888 + 15383). Ma SOLR dà 15383 risultati, semplicemente ignora l'effetto della terza interrogazione:
Query: + ((nome: john) (- (nome: {* a *}))) // Questa è la query ero Usato.
È un errore di Solr o sto sbagliando nella query? L'unione di due risultati di query è una soluzione aggiuntiva, ma non voglio eseguire un'implementazione di codice aggiuntiva se potessi farlo con una semplice query.
Qualsiasi aiuto sarebbe apprezzato.
ha funzionato da me !! – Raj
Questo è proprio quello di cui avevo bisogno. Grazie. Sareste in grado di spiegare cosa 'AND *: *' fa in questo esempio? Vedo che la mia ricerca non funziona se esco da quella parte, non sono sicuro del perché. –
'*: *' significa tutte le righe. '*: * -name: *' significa tutte le righe senza un valore di nome. 'nome: john OR (*: * -name: *)' può essere tradotto in SQL come 'name = 'john' O nome IS NULL' – Semra