Warum gibt dies 0 zurück, ein Dokument existiert mit TopTabId = 1027 und ContentPlainRemaded = Word?LUCENE.NET sucht nicht mit zwei AND
{+TopTabId:1027 +ContentPlainRemaded:Word*}
Diese Abfrage funktioniert, aber mehr Datensätze zurückgibt dann benötigt:
{TopTabId:1027 +ContentPlainRemaded:Word*}
Problem Code lautet:
Query query1;
BooleanQuery querySearch = new BooleanQuery()
query1 = ((new QueryParser(VersionsToUse, "TopTabId", Analyzer)).Parse("1027"));
querySearch.Add(new BooleanClause(query1, Occur.MUST));
query1 = ((new QueryParser(VersionsToUse, "ContentPlainRemaded", Analyzer)).Parse("WORD"));
querySearch.Add(query1, Occur.MUST);
using (IndexSearcher searcher = new IndexSearcher(SearchIndexDirectory, true))
{
var docs = searcher.Search(querySearch, 100);
.................................
}
LUCENE.NET 3.0.3
TopTabID ist Zeichenkettentyp: ldoc.Add(new Field("TopTabId", doc.TopTabId.ToString(), Field.Store.YES, Field.Index.ANALYZED));
Ich versuchte NumericRangeQuery
, aber immer noch 0 Ergebnisse.
Ich denke Problem nicht mit TopTabId ist, weil und dies nicht funktioniert (return 0 Ergebnis): {+ContentPlainRemaded:Word* +ContentPlainRemaded:Word*}
Können Sie Ihre Ergebnisse überprüfen? 'TopTabId: 1027 + ContentPlainRemaded: Word *' einige Ergebnisse erhalten, aber '+ ContentPlainRemaded: Word * + ContentPlainRemaded: Word *' (oder das im Wesentlichen äquivalente '+ ContentPlainRemaded: Word *') bringt keine Ergebnisse nicht wirklich summiert. Versuchen Sie, Ihre Abfrage vor dem Ausführen zu drucken, um sicherzustellen, dass es wie erwartet aussieht. – femtoRgon
Nicht funktioniert, wenn ich zwei UND (+) Element hinzugefügt. Sie arbeiten: '+ ContentPlainRemaded: Word *', '+ TopTabId: 1027' Sie arbeiten nicht:' + ContentPlainRemaded: Word * + ContentPlainRemaded: Word * '' + TopTabId: 1027 + ContentPlainRemaded: Word * ' – user3093010
Es scheint, als ob Sie aren Erklären Sie nicht genau, was funktioniert und was nicht. Sagen Sie tatsächlich, dass '+ TopTabId: 1027 + ContentPlainRemaded: Word *' andere Ergebnisse als '+ ContentPlainRemaded: Word *, + TopTabId: 1027' erhält? Das sind * identische * Ausdrücke in der Lucene-Abfragesyntax, daher ist es schwer herauszufinden, was Sie meinen. Haben Sie versucht, jede Abfrage einzeln auszuführen (dh die boolesche Abfrage vollständig zu löschen)? – femtoRgon