2017-09-27 4 views
0

Ich habe drei Felder sagen F1, F2, F3. Ich möchte alle Dokumente finden, die alle drei Felder als null haben. Kann ich dies erreichen mit ? Wenn ich MUST_NOT Klausel für alle drei Felder verwenden, dann wird es nicht die Dokumente zurückgeben, die eines dieser Felder als Nicht-Null-Wert haben.BooleanQuery zwischen mehreren Feldern

ich spreche kann dies das sicher gehen nicht auf work.How so etwas wie dieses

BooleanQuery booleanQuery = new BooleanQuery(); 
booleanQuery.add(new TermQuery(new Term(F1,"")), BooleanClause.Occur.MUST_NOT); 
booleanQuery.add(new TermQuery(new Term(F2,"")), BooleanClause.Occur.MUST_NOT); 
booleanQuery.add(new TermQuery(new Term(F3,"")), BooleanClause.Occur.MUST_NOT); 

Umsetzung i erreichen? Jede Hilfe wäre hilfreich.

Antwort

0

Nicht sicher, wie Ihr Index aussieht, aber Sie wollen das richtig erreichen?

Sie haben eine Abfrage wollen, die mit diesen Feldern gesucht wird und diese Felder müssen leer seine

BooleanQuery booleanQuery = new BooleanQuery(); 
booleanQuery.add(new TermQuery(new Term(F1,"")), BooleanClause.Occur.MUST); 
booleanQuery.add(new TermQuery(new Term(F2,"")), BooleanClause.Occur.MUST); 
booleanQuery.add(new TermQuery(new Term(F3,"")), BooleanClause.Occur.MUST); 

Diese Boolesche Abfrage für einen leeren Begriffe sucht (zweiter param des Begriffs ist „“) in diesem Bereich Für jedes Feld muss es ein Muss sein.

Verwandte Themen