Solr - Wie indiziert man mehrere Entitäten?

8

Ich habe zwei Tabellen Kontakte und Inventar. Diese zwei Tabellen sind nicht verwandt. Ich möchte diese beiden Tabellen indizieren und mit Solr suchen.

Ist das möglich?

    
arun 05.07.2011, 12:57
quelle

3 Antworten

4

Ja, das kannst du tun. Erstellen Sie einfach ein Solr-Schema, das alle für beide Tabellen erforderlichen Felder enthält, und fügen Sie ein weiteres Feld hinzu, das den Tabellennamen enthält. Fügen Sie während der Indizierung den Feldern, die Sie indizieren möchten, die Tabellenname-Eigenschaft hinzu. Fügen Sie während der Suche immer auch einen Abfrageparameter für das Tabellennamensfeld ein.

Alternativ können Sie mehrere Instanzen von Solr einrichten. Aber Sie sollten das nur tun, wenn wir hier über riesige Datenmengen sprechen (wie Millionen von Tabellenzeilen).

    
nfechner 05.07.2011, 13:03
quelle
18

Wenn ein Teil Ihrer Anwendung nach Kontakten suchen muss und ein anderer Teil in der Bestandsliste suchen muss, erstellen Sie zwei separate Indizes. Es ist fast nie eine gute Idee, wild verschiedene Daten im gleichen Index zu speichern, es macht Dinge unnötig kompliziert. Wie das Solr Wiki weise sagt :

  

Je heterogener (anders   Arten von Daten), die Sie in einem Feld haben   oder in einem Index, desto weniger nützlich ist es   ist.

Sie müssen nicht mehrere Solr-Instanzen haben, um mehrere Indizes aufzunehmen, Sie können dies einfach mit Multicore verwalten >.

    
Mauricio Scheffer 05.07.2011 13:51
quelle
7

Ich fand eine sehr hilfreiche Antwort auf diese Frage hier , einschließlich einiger Hinweise zur Verwendung von "Mehrfachindizes" vs. "Mehrere Dokumenttypen in einem Index". Der Post verweist auch auf Beispielcode auf GitHub, den ich sehr nützlich fand.

    
vulcan 30.09.2011 23:01
quelle

Tags und Links