Unterschied zwischen LinqToLucene und Lucene.Net.Linq

8
  1. Sind die LinqToLucene und die Lucene.Net.Linq Projekte anders?
  2. Was sind die Vor- und Nachteile von jedem von ihnen?
  3. 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?

  4. Wenn es nicht der Punkt ist, wie kann ich erweiterte Abfragen in LINQ zu Lucene.Net verwenden?
alizx 14.08.2014, 04:38
quelle

2 Antworten

9

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.

LINQ zu Lucene Nachteile:

  1. Nicht verfügbar in NuGet
  2. Nicht aktiv gepflegt
  3. Sehr eingeschränkt in dem, was Sie in eine where -Klausel eingeben können
  4. Gekoppelt an EF, ob Sie es wollen oder nicht

Lucene.Net.Linq Profis:

  1. Aktiv gepflegt
  2. Pakete (und Symbole!), die in NuGet veröffentlicht wurden
  3. Besseres Verständnis komplexer Fragen
  4. Fließende und Attribut-APIs zum Zuordnen von Eigenschaften zu Feldern und Kontrollanalyse, Speicherung und Indizierung

Lucene.Net.Linq Nachteile:

  1. Dokumentation könnte besser sein
  2. Nur eine Handvoll Beiträge außerhalb meines eigenen
  3. Unklare Leistung vs Vanille Lucene.Net (nicht viel Leistungstest wurde durchgeführt)

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 :

übergeben können %Vor%

Und es unterstützt die Suche jedes indizierten Feldes mit Fuzzy-Match:

%Vor%

Und es unterstützt einfache Übereinstimmung mit == und != :

%Vor%

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.

    
Chris Eldredge 14.08.2014, 16:27
quelle
-1

Mit diesem Code:

%Vor%

Sie könnten mit Dateisystem und nicht mit Systemspeicher arbeiten.

    
Itay BenNer 31.03.2015 14:55
quelle