Wie kann ich meine ElasticSearch-Indizes organisieren? [geschlossen]

9

Ich bin neu bei ElasticSearch, das ich benutze, um einem coolen Start zu helfen, der eine Suchmaschine braucht.

Mein Anwendungsfall ist:

  • Jeder Benutzer der Website hat seinen persönlichen Bereich, in dem er Textdokumente erstellen kann
  • Jeder Benutzer kann seinen Inhalt mit eingeschränkten Personen (Freunden) teilen
  • Jeder Benutzer kann öffentlichen Inhalt erstellen
  • Benutzer können aus verschiedenen Ländern stammen
  • Benutzer können nach anderem als nach Posts suchen (z. B. nach einem anderen Benutzer suchen)

Unsere Daten werden in CouchDB gehostet.

1) Soll ich einen eindeutigen Index erstellen oder empfiehlt es sich, einen Index pro Benutzer zu erstellen? Ich habe gelesen, dass es keine schlechte Idee ist, alles auf den gleichen Index zu setzen, damit Sie in der gleichen Zeit nach vielen verschiedenen Dingen suchen können. Aber ich habe bemerkt, ES bietet die Möglichkeit, auf mehreren Indizes zu suchen, warum also nicht einen Index pro Benutzer erstellen? Ist es ein Problem, weil die maximale URL-Größe begrenzt ist und die Indexnamen von der URL oder etwas anderem bereitgestellt werden?

2) Sollte ich einen Index pro json-Dokument erstellen? Ich habe meistens 2 verschiedene Arten von Dokumenten zu indizieren: Beiträge und Benutzer. Wenn ich in der Lage sein möchte, beide gleichzeitig zu durchsuchen, vermute ich:

  • Um einen Index für Beiträge und einen Index für Benutzer zu erstellen und beide zu durchsuchen?
  • Um einen Index und zwei verschiedene Typen zu erstellen und nach beiden Typen desselben Indexes zu suchen? Ich weiß nicht wirklich, was der Unterschied sein wird.

3) Ist es normal, mehrere Flüsse desselben Typs zu erstellen? Zum Beispiel auf dem Fluss CouchDB, die ein "Filter" -Attribut bereitstellen, um nur die Dokumente zu empfangen, die zu Ihrem Filter passen. Also, wenn ich meine Beiträge und meine Benutzer auf 2 separaten Indizes oder Typen indizieren möchte, werde ich zuerst 2 CouchDB Flüsse erstellen, die beide einen anderen Filter und einen anderen Index und / oder Typ haben.

Ist es der Weg zu tun?

    
Sebastien Lorber 14.06.2012, 22:07
quelle

0 Antworten