Seit ich Lucene.Net.Linq gefunden habe, um in letzter Zeit relativ zu LinqToLucene aktualisiert zu werden, und es in nuget verfügbar ist, möchte ich es in meinem einfachen Projekt verwenden, aber ich stieß auf Mangel an Dokumentation und ich kann nicht finden, wie ich kann Verwenden Sie Lucene erweiterte Abfragen mit diesem Paket wie möglich in LinqToLucene zum Beispiel:
%Vor%Wenn diese Erweiterungsfunktionen nicht verfügbar sind, worauf zielt dieses Projekt ab?
LINQ zu Lucene scheint inaktiv zu sein. Das letzte Commit zum Zeitpunkt des Schreibens war im Oktober 2012 und der letzte Diskussionspost, der fragt, ob das Projekt aktiv ist, ist seit dem gleichen Zeitraum unbeantwortet.
LINQ to Lucene hat eine enge Verbindung zu Entity Framework, daher scheint mir, dass das Projekt Daten von EF für die Freitextsuche indexieren soll.
Lucene.Net.Linq ist ein völlig eigenständiges Projekt, das ich 2012 begonnen habe und aktiv weitergeführt habe. Dieses Projekt hat keine Verbindung zu EF oder anderen Bibliotheken. Es hängt nur von Lucene.Net, Common.Logging für die Protokollierung und Remotion.Linq ab, um bei der Analyse und Übersetzung von LINQ-Abfragen zu helfen. Ich habe ursprünglich die Möglichkeit untersucht, zu LINQ zu Lucene beizutragen, fand aber, dass die enge Kopplung mit EF und einige andere Annahmen die Bibliothek für meine Bedürfnisse ungeeignet machten.
where
-Klausel eingeben können Die Dokumentation besteht aus dem Projekt README und Beispielcode im Unit-Test-Projekt.
Lucene.Net.Linq verfügt nicht über Erweiterungsmethoden für jede Abfrage, die Lucene.Net nativ unterstützt. Es bietet jedoch eine Escape-Luke, in der Sie Ihre eigene Query
:
Und es unterstützt die Suche jedes indizierten Feldes mit Fuzzy-Match:
%Vor% Und es unterstützt einfache Übereinstimmung mit ==
und !=
:
Beachten Sie, dass die Bedeutung von ==
davon abhängt, wie ein bestimmtes Feld indiziert wird. Wenn das Feld als Schlüsselwort indexiert wird, wird die exakte Übereinstimmung wirksam. Wenn das Feld in Token umgewandelt, in Stemmen umgewandelt, in Kleinbuchstaben konvertiert wird usw., dann würde ==
mit jedem Begriff im Feld übereinstimmen.
Mit diesem Code:
%Vor%Sie könnten mit Dateisystem und nicht mit Systemspeicher arbeiten.
Tags und Links linq-to-lucene lucene.net.linq