Ich habe versucht, die Lösungen in der folgenden Frage aufgeführt.So entfernen Sie Duplikate aus mehrwertigen Feldern in SOLR?
Removing Solr duplicate values into multivalued field
Ich verwende Dataimport-Handler und mehrere Werte für das Feld mit RegexTransformer zu schaffen.
My SQL gibt diese für Spalte FOO
Johnny Cash, Bonnie Geld, Honig-Häschen, Johnny Cash
und speichere ich es in die mehrwertig Feld foo mit splitBy = ""
<field column="FOO" name="foo" splitBy=","/>
und es ist in dem mehrwertigen Feld gespeichert als solche
{ "Johnny Cash", "Bonnie Money", "Honey Bunny", "Johnny Cash"}
Ich habe
<updateRequestProcessorChain name="distinctMultiValued" default="true">
<!-- To remove duplicate values in a multivalued field-->
<processor class="DistributedUpdateProcessorFactory"/>
<processor class="UniqFieldsUpdateProcessorFactory">
<str name="fieldRegex">foo</str>
</processor>
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
Ich habe auch dies dem solrconfig xml hinzugefügt versuchte FieldName anstelle von FieldRegex und versuchte * oo anstelle von foo, aber die Duplikate bleiben.
Hat das etwas mit dem RegexTransformer zu tun? Ich habe auch eine Update-Kette mit TrimFieldsUpdateProcessorFactory
als läuft ohne Probleme.
Das wird nicht funktionieren. Die Option fields wurde ab SOLR 5 eingestellt. – Razen
In der Schemadatei fügen Sie diesen Filter zu Ihrer multivalenten Feldtypdefinition hinzu ' ' –
vinod
Werden doppelte Tokens nicht einfach entfernt? Es entfernt keine doppelten Werte aus dem Feld in den Abfrageergebnissen, oder? – Razen