2017-01-15 5 views
0

Ich habe den folgenden Anwendungsfall:Lucene Raumstrategie

ich meine lucene Dokumente in einem gewissen Kreis mit dem Radius x km von den jeweiligen Benutzer in der Lage sein wollen lat lange zu suchen.

Ich möchte auch die Dokumente nach Entfernung sortieren.

Ich brauche auch später die Distnace-Werte für den Benutzer anzuzeigen.

Welche räumliche Strategie wäre für mich am besten, ohne etwas extra zu indexieren und die Leistung zu berücksichtigen.

Antwort

0

Entsprechend Ihren Anforderungen, ich denke, die beste Wahl der PointVectorStrategy sein könnte, die die einfachste und auch Ihre Bedingungen erfüllen:

Einfache SpatialStrategy die Punkte in zwei numerische Felder darstellt. Die beste Eigenschaft der Strategie ist annehmbare Abstandsortierung.

Eigenschaften:

  • Nur Indizes Punkte; nur ein pro Feldwert.
  • Kann durch ein Rechteck oder einen Kreis abfragen.
  • SpatialOperation.Intersects und SpatialOperation.IsWithin wird unterstützt.
  • Benötigt DocValues ​​für SpatialStrategy.makeDistanceValueSource (org.locationtech.spatial4j.shape.Point) und für die Suche mit einem Kreis.

Ja, es erfordert, dass Sie DocValues ​​haben indiziert, aber wenn ich richtig verstehe, keine der räumlichen Strategien kostenlos benötigte Funktionalität sein liefern.