Wie ODER Null-Wert in Apache Solr-Abfrage?

9

Die letzte Möglichkeit, dies zu lösen, war StackOverflow zu fragen.

Ich versuche eine Solr-Abfrage zu erstellen, um Dokumente zu erhalten, die einen bestimmten Wert für eines ihrer Felder haben oder die keinen Wert haben ...

Theoretisch hätte diese Abfrage funktionieren müssen.

Hier einige Informationen:

Abfrage: (Name: john) - & gt; Ergebnisanzahl: 15383 // Johns

Abfrage: (Name: {* TO *}) - & gt; Ergebnisanzahl: 61013 // Personen, die einen Namen haben

Abfrage: - (Name: {* TO *}) - & gt; Ergebnisanzahl: 216888 // Personen, die keinen Namen haben

Nun, wenn ich die erste und dritte Abfrage in einer Abfrage mit Operator ODER verwende, erwarte ich (216888 + 15383) Ergebnisse. Aber SOLR gibt 15383 Ergebnisse, ignoriert einfach den Effekt der dritten Abfrage:

Abfrage: + ((name: john) (- (name: {* TO *}))) // Dies ist die Abfrage, die ich verwendet habe.

Ist das ein Fehler von Solr oder mache ich Fehler bei der Abfrage? Das Zusammenführen von zwei Abfrageergebnissen ist eine zusätzliche Lösung, aber ich möchte keine zusätzliche Code-Implementierung durchführen, wenn ich dies mit einer einfachen Abfrage tun könnte.

Jede Hilfe wäre willkommen.

    
emregecer 06.10.2011, 09:09
quelle

3 Antworten

17

(-name:[* TO *] AND *:*) OR name:john

    
Aliya 06.02.2012, 23:43
quelle
1

Sie können es auch so benutzen.

%Vor%     
user1976546 09.02.2015 07:44
quelle
-1

versuche die folgende Abfrage -

%Vor%     
Jayendra 06.10.2011 09:20
quelle

Tags und Links