Wie durch Lucene.Net Feld und ignorieren gemeinsame Stoppwörter wie ‚a‘ und ‚die‘ sortieren?

StackOverflow https://stackoverflow.com/questions/66041

  •  09-06-2019
  •  | 
  •  

Frage

Ich habe festgestellt, wie die Abfrageergebnisse in einem Lucene.Net Index von einem bestimmten Feld zu sortieren, statt nach Punkten; alles was man braucht ist ein Feld, das indiziert ist, aber nicht in Token aufgeteilt. Allerdings habe, was ich nicht in der Lage gewesen, um herauszufinden, wie das Feld zu sortieren, während Stoppwörter wie „a“ und „die“ ignoriert, so dass die folgenden Buchtitel, zum Beispiel, würden wie so in aufsteigender Reihenfolge sortieren:

  1. Die Katze im Hut
  2. Horton Hears a Who

Ist so etwas möglich, und wenn ja, wie?

Ich bin mit Lucene.Net 2.3.1.2.

War es hilfreich?

Lösung

ich die Ergebnisse wickeln von Lucene in meine eigene Sammlung von benutzerdefinierten Objekte zurückgegeben. Dann kann ich es fülle mit Zusatzinfo / Kontextinformationen (und Dinge verwenden, wie die Textmarker Klasse einen Ausschnitt der Spiele zu ziehen), und Paging hinzuzufügen. Wenn Sie eine ähnliche Route führen könnten Sie ein „Ergebnis“ Klasse / Objekt erstellen, fügen Sie so etwas wie eine SortBy Eigenschaft und greift, was Feld, das Sie sortieren, indem Sie wollten, Streifen aus keinen Worten Anschlag, dann ist es in dieser Eigenschaft speichern. Jetzt nur noch die Sammlung sortieren basierend auf dieser Eigenschaft statt.

Andere Tipps

Wenn Sie Ihren Index erstellen, ein Feld erstellen, die nur die Worte enthalten, die Sie wollen auf sortieren, dann, wenn das Abrufen, Sortieren auf diesem Gebiet aber zeigt den vollständigen Titel.

Es ist schon eine Weile her, seit ich verwende Lucene, aber meine Vermutung wäre, ein zusätzliches Feld hinzufügen zum Sortieren und den Wertes in dort mit den Stoppwörtern Speicherung bereits abgezogen. Sie können sich wahrscheinlich die gleichen Analysatoren verwenden diesen Wert zu erzeugen.

Es scheint ein Catch-22, dass zu sein Sie ein Feld mit einem Analysator, um Interpunktion abzustreifen und stoppen Worte tokenize müssen, aber Sie können nicht sortieren Token versehen Felder aus. Wie dann die Stoppwörter Streifen ohne Zeichenüber?

Für die Suche, fand ich

scroll top