Django-haystack: Mehrere Indizes pro Modell

Erstellt am 21. Juni 2012  ·  7Kommentare  ·  Quelle: django-haystack/django-haystack

Wir haben einen potenziellen Anwendungsfall, bei dem wir mehrere Indizes pro Modell haben möchten, und Haystack scheint dies derzeit zu verbieten. Diese Indizes wären sehr unterschiedlich und verwenden unterschiedliche Felder usw.

Vielleicht besteht die Lösung darin, zu einem riesigen Index zu kombinieren, aber es wäre gut, mehrere Indizes pro Modell zuzulassen. Vor allem, wenn man an interne und externe Werkzeuge denkt.

Hilfreichster Kommentar

Ich habe das mit Proxy-Modellen umgangen, Haystack wird sich nicht beschweren, wenn Sie Indizes dafür erstellen.

Alle 7 Kommentare

Leider ist dies ein Nichtstarter. Haystack (insbesondere bei Abfragen) muss wissen, welches Modell geladen werden kann und es ist sehr schwierig, wenn es keine 1-zu-1-Zuordnung gibt.

Ein großer Index ist die typische Vorgehensweise, die ich empfehle, diesen Fall zu behandeln. Sie haben einen leistungsstarken, (relativ) schemalosen Datenspeicher, daher ist die Denormalisierung Ihr Freund.

Ich bin mir nicht sicher, ob ich das verstehe, daher möchten wir 2 Indizes in ElasticSearch für das eine Django-Modell. Bedeutet dies nicht, das ID-Feld in einem Index in zwei zu duplizieren? Ich hätte gedacht, Abfragen wäre in Ordnung, aber das Schreiben in den Suchindex wäre problematisch?

Ich habe das mit Proxy-Modellen umgangen, Haystack wird sich nicht beschweren, wenn Sie Indizes dafür erstellen.

Indem ich dies nicht unterstützt, glaube ich, hält es die Leute auch davon ab, verschiedene Indexierungsmethoden für ein bestimmtes Modell A/B zu testen. Wir überdenken unsere anfängliche Implementierung von Haystack und ich wünschte mir wirklich, neben using=CONNECTION_NAME könnte ich index=INDEX_CLS . @matclayton Das Beste, was ich bei der Implementierung gefunden habe, ist die Verwendung der Einstellung EXCLUDED_INDEXES in den HAYSTACK_CONNECTIONS in den Einstellungen.

Ich stimme dem Modell "1 Modell pro Index" zu, wünschte jedoch, ich hätte mehr Kontrolle über das Routing, damit ich mehrere konkurrierende Indizes für ein bestimmtes Modell verwalten könnte.

Dies ist sehr nützlich, um einen Index pro Benutzer und Modell zu erstellen, um Berechtigungen auf Objektebene zu handhaben.
Ich würde das wirklich nochmal überdenken.

Es gibt viele Anwendungsfälle, in denen mehrere Indizes für ein einzelnes Modell benötigt werden. Wir mussten dies mit Hacks in unserem Projekt tun. +1, um dies zu verwirklichen.

@grjones hat sich in den letzten 5 Jahren seit der ziemlich viel geändert. Wenn Sie eine Idee haben, wie dies umgesetzt werden könnte, ist es meiner Meinung nach am besten, ein Issue oder einen Pull-Request mit einem konkreten Anwendungsfall und einer vorgeschlagenen Implementierungsstrategie zu eröffnen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen