| 

.NET C# Java Javascript Exception

1
Ich bin gerade dabei, in einem System die Suche mit Hilfe von NHibernate.Search und Lucene.net aufzusetzen. Die Suche funktioniert soweit ganz gut. Doch nun gibt es ein Problem.

Ich möchte gerne, dass bei der Eingabe von 2 Wörtern (z. B. "Wasser" und "Flasche") nur die Ergebnisse angezeigt werden, die diese beiden Wörter enthalten. Ich habe 3 Tickets; 2 Tickets, in den "Wasser" und "Flasche" vorkommen und ein Ticket, in dem nur "Flasche" vorkommt. Ich möchte nicht, dass ein Ergebnis angezeigt wird, in dem nur das Wort "Flasche" vorkommt. Die Suche soll mir als Ergebnis die beiden Tickets anzeigen, in welchem beide Wörter, "Wasser" und "Flasche" vorkommen.

Nach nächtelanger Recherchen bin ich darauf gestoßen, dass man den Standard-Operator ändern muss. Denn Standardmäßig wird der "OR-Operator" verwendet, an dieser Stelle müsste aber der "AND-Operator" verwendet werden.

Ich habe den unten stehenden Code nun an der Stelle eingefügt, an der die Suchmaske beginnt. Allerdings funktioniert es noch immer nicht so, wie ich es oben beschrieben habe. Hat jemand eine Idee, wie ich hier vorgehen muss?

QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "OriginQuestion", new Lucene.Net.Analysis.Standard.StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));
parser.SetDefaultOperator(QueryParser.AND_OPERATOR);
News:
21.07.2012
cyrous 1 1
Zur Sicherheit: das in Deinem Code-Beispiel gezeigte QueryParser-Objekt ist dasselbe, auf dem Du später parse(...) aufrufst?
Matthias Hlawatsch 22.07.2012
TOP TECHNOLOGIES CONSULTING GmbH