Speichern von Arrays in Solr

8

Wie kann man ein Array von Werten in einem Solr-Index speichern? Ich versuche speziell, eine schema.xml Datei zu formulieren.

Betrachten Sie das folgende mögliche Solr-Dokument:

%Vor%

In MySQL hätte ich drei Tabellen, so:

%Vor%

Abgesehen von dem Konzept, dass eine Person zu mehreren Bändern gehören könnte, und anderen Vorteilen des MySQL-Ansatzes, ist es mein Ziel zu lernen, wie man Arrays in Solr speichert. Die Band ist einfach ein Beispiel und möglicherweise auch nicht gut!

Der offensichtliche Ansatz, mehrere Member s zu haben, wäre ein Feld mit mehreren Werten:

%Vor%

Dieses multiValued-Feld selbst muss jedoch Subwerte haben. Ich sehe keine Dokumentation zur Formulierung des Schemas. Beachten Sie, dass ich Solr 4 verwende. Danke.

    
dotancohen 11.09.2012, 07:02
quelle

2 Antworten

8

Es gibt ein paar Antworten, aber leider verwendet keiner von ihnen multivalued .

  • Nutzen Sie die verschachtelten Dokumente von lucene (könnte schlecht funktionieren)
  • Schwer denormalisieren Sie die Dokumente mit einem Dokument für jede Option. Verwenden Sie dann die Gruppierungsfunktion von Lucene. (Dies ist der 'SOLR / Lucene Way'.)
  • Folgen Sie der span-Abfrage und dem Termvektor mit den Offsets advice @ im folgenden Blog: Ссылка http://blog.griddynamics.com/2011/07/solr-experience-search-parent-child.html Ссылка
  • Erstellen Sie indizierte Facettennamen.

Bei indizierten Facettennamen würden Ihre Daten (ein Dokument) wie folgt aussehen:

%Vor%

Mit relativ kurzen Listen (kürzer als hunderte) ist letzteres die einfachste für Ihre Dokumentengröße und -komplexität, aber zwingt das Problem in die Runde des Kunden, was die Suche betrifft.

    
inanutshellus 12.12.2012 20:36
quelle
1

Lucene hat bereits einen Beitritt, so dass Sie mit einigen Vorbehalten das db-Schema mit ihnen in Verbindung bringen könnten, siehe Gruppierung und Beitritt in Lucene / Solr . Solr wird auch Zugang dazu bekommen, schaue laufende Arbeit

an     
Persimmonium 11.09.2012 20:13
quelle

Tags und Links