2017-05-23 4 views
0

In Daten-config.xml:Wie verwendet man Daten aus einem Feld in einem anderen Feld in Solr?

<entity name="index" query="select distinct index from (SELECT distinct index FROM street WHERE (substr(code::text, 1, 8)::character varying(8)) = substr('${kladr.code}', 1, 11) 
            union all 
            SELECT distinct index FROM kladr WHERE (substr(code::text, 1, 8)::character varying(8)) = substr('${kladr.code}', 1, 8) 
            union all 
            SELECT distinct index from street_zip where (substr(code::text, 1, 8)::character varying(8)) = substr('${kladr.code}', 1, 11) 
            union all 
            SELECT distinct index from street_building where (substr(parent_code::text, 1, 8)::character varying(8)) = substr('${kladr.code}', 1, 8)) as t 
            " 
      transformer="LogTransformer" logTemplate="street: ${index.index}" logLevel="debug"> 
     </entity> 

Ich brauche separate Einheit "index_count" mit der Anzahl der Datensätze in der Entität "index" (es ist mehrwertig Feld). Wenn ich eine andere SQL-Abfrage mache, verlangsamt es den Datenimport, kann ich Entity verwenden, um Daten daraus zu extrahieren? Zum Beispiel:

<entity name="index_count" query="SELECT count(*) from index"> 
    </entity> 

Oder etwas ähnliches?

Antwort

2

Wahrscheinlich nicht die einzige Möglichkeit, aber Sie könnten eine Update+Request+Processor hinzufügen, die die Zahl zählt und das Feld index_count auffüllt.

Es wird schnell sein, aber es ist komplexer zu implementieren, Sie müssen Java-Code schreiben. Und wenn Sie Solrcloud verwenden, müssen Sie den Code für alle Knoten usw. bereitstellen.

+1

Um eine Anzahl von Werten in einem mehrwertigen Feld mit URP zu zählen, würden Sie CloneFieldUpdateProcessorFactory, gefolgt von CountFieldValuesUpdateProcessorFactory und möglicherweise von DefaultValueUpdateProcessorFactory verwenden (obwohl Sie stattdessen festlegen könnten) Standard für die Felddefinition). Die vollständige Liste der URPs finden Sie unter: http://www.solr-start.com/info/update-request-processors/ –

Verwandte Themen