2017-09-21 3 views
0

Ich habe einen solr Server, der eine Dynamic von „phonenumbers *“ hatSuche Solr von einem dynamisch generierten Feldnamen

Wenn es einen Datensatz aus unserer Mongo Datenbank über den Mongo-Anschluss erhält er sieht wie folgt endet:

{ 
    phoneNumbers.0: "123-456-7890", 
    phoneNumbers.1: "321-654-0987" 
} 

Gibt es eine Möglichkeit für mich, nur die Telefonnummer Felder abzufragen. Etwas wie folgt aus:

phoneNumbers.*:"123-456-7890" 

Ich versuche, wie harte Kodierung der Suche zu verhindern, so:

phoneNumbers.0:"123-456-7890" || phoneNumbers.1:"123-456-7890" || phoneNumbers.2:"123-456-7890"... 

Antwort

1

Die .0 und .1 Einträge stammt aus dem Mongo Anschluss die Dokumente Abflachen alle Teildokumente zu ermöglichen, zu sein anwesend in Solr.

Der einfachste Weg, dies zu lösen, ist ein Feld hinzufügen, um alle Werte zu enthalten und das Feld als mehrwertig (so dass es mehrere Werte beibehalten kann), und dann verwenden Sie eine copyField Anweisung Solr zu sagen, alles aus der phoneNumbers.-Felder in dieses einzelne Feld. Sie können dann nach diesem Feld suchen, um einen beliebigen Eintrag aus einem Feld phoneNumbers zu finden.

Zum Beispiel:

<copyField source="phoneNumbers.*" dest="phoneNumbers" /> 
+0

Das ist es gelöst, vielen Dank! – Camway