Frage

Ich bin mit Sitecore und haben ein multilist Feld Ich mag würde Lucene verwenden, um auf zu suchen. Das Problem, das ich habe ist, dass das Feld eine Rohr getrennte Liste von Istwerten und zwischen 0 und einem unendlichen (theoretisch, tatsächlich gibt es wahrscheinlich nur tausend oder zwei Möglichkeiten) Anzahl der Elemente in dieser Liste sein könnte. Ich habe nicht in der Lage, erfolgreich eine Wildcard-Abfrage zu verwenden, und ich kann nicht vorstellen, wie dieses Feld zu brechen in mehrere Felder, da es eine unbekannte Anzahl von Elementen in der Liste ist.

War es hilfreich?

Lösung

Ich habe eine ähnliche Technik, bei der Suche verwendet innerhalb einer Kategorie-Hierarchie zu suchen. Ich verwende die folgende Methode, um die Abfrage zu erstellen, die harte Arbeit der QueryParser Klasse verlassen. Ich füge normalerweise diese Abfrage auf eine BooleanQuery.

Die QueryParser in der Regel eine große Arbeit erledigt, ich habe es oft verwenden für die meisten meiner Lucene Abfragen bauen - es scheint, einen besseren Job als ich zu tun, wenn eine bestimmte Frage eine Menge Zeit bauen !!

Eine andere Sache, die Sie tun können, ist die QueryParser zu verwenden, um es zu bauen, dann einen Haltepunkt festgelegt und haben einen Blick auf, wie die Abfrage erstellt wurde, geben Sie Ihren Code aktualisieren mit dem spezifischen Abfragetyp.

private Query GetQuery(Sitecore.Data.ID id)
{
    string categoryId = id.Guid.ToString(); //turn ID to string
    StandardAnalyzer analyzer = new StandardAnalyzer(); //use standard analyzer
    QueryParser parser = new QueryParser("categories", analyzer); //search inside category field
    Query query = parser.Parse(categoryId); //get the query
    return query;
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top