Ich versuche Solr Auto-Lösch-Funktion mit Solr-6 zu verwenden. Ich habe die folgenden Änderungen in meiner Managed-Schema.xml und Solrconfig.xml vorgenommen.Solr automatisch löschen mit Standard-Wert von TTL-Feld
Managed-Schema
<!--expiration date field-->
<field name="eDate" type="date" multiValued="false" indexed="true" stored="true"/>
<field name="ttl" type="string" multiValued="false" indexed="true" stored="true" default="+90SECONDS"/>
solrconfig
<processor class="solr.processor.DocExpirationUpdateProcessorFactory">
<int name="autoDeletePeriodSeconds">30</int>
<str name="ttlFieldName">ttl</str>
<str name="expirationFieldName">eDate</str>
</processor>
ich in der Lage bin Auto zu verwenden, löscht Funktion wie erwartet, wenn ich das TTL-Feld explizit entweder in dem eingehenden Dokument oder wenn ich die ttl Anfrage-Parameter in der Update-Anfrage. Ich möchte jedoch einen Standardwert für ttl verwenden, wie im verwalteten Schema angegeben, wenn ich das Feld ttl nicht explizit festlege. Wenn ich dies versuche, wird das TTL-Feld mit dem Standardwert generiert, aber das entsprechende eDate-Feld wird nicht erzeugt.
Ist es möglich zu tun, was ich versuche zu tun? Wenn ja, wie kann ich das tun? Bitte hinterlassen Sie einen Kommentar, wenn Sie weitere Informationen benötigen.
Eine Idee, warum es nicht für Standardfeld direkt im Schema funktioniert? Weil wir nicht die TTL für jedes Dokument aus unserem Code übergeben wollen. Ich denke, das Hinzufügen von "Standard" Schlüsselwort in der Feld-Eigenschaft sollte intern diesen Update-Prozessor auslösen? – Tanvi
meine Antwort erfordert nicht, TTL für jedes Dokument zu übergeben. habe keine Ahnung, warum es nicht durch Schema param funktioniert – Mysterion
@ Mysterion Es funktioniert auch für mich. Danke –