Lucene term query

In meiner Anwendung haben wir Angebote und jedes Angebot hat eine Zielgruppe, die können über mehrere Felder wie Geschlecht, Alter und Stadt. Für die gender-Teil a deal Ziel sein könnte MALE FEMALE oder BOTH. Ich wollte finden sich Angebote, die entweder für Männer oder für beide.Ich habe die folgende Abfrage, aber es funktioniert nicht...

TermQuery maleQuery = new TermQuery(new Term("gender","MALE"));
TermQuery bothQuery = new TermQuery(new Term("gender","BOTH"));

BooleanQuery query = new BooleanQuery();
query.add(maleQuery,BooleanClause.Occur.SHOULD);
query.add(bothQuery,BooleanClause.Occur.SHOULD);

Bitte vorschlagen, wenn ich einige machen Fehler. Irgendwie scheint es zu spucken nur MALE Angebote,und nicht BOTH.

Ich bin mit der version 4.2.1 und Standard Analyzer wie der analyzer.

  • Was ist das Ergebnis der Suche nur new TermQuery(new Term("gender","BOTH"))?
  • es gibt mir die Elemente mit Geschlecht angegeben, wie die beiden... aber es ist sehr inkonsistent. In ähnlicher verschiedenen Abfrage - new TermQuery(new Term("type","DEAL")) es nicht geben mir die Elemente mit type=DEAL. Die Indizierung der beiden Szenarien ist genau das gleiche.
InformationsquelleAutor mickeymoon | 2013-04-24
Schreibe einen Kommentar