urlink in Sitecore-Indizes gibt die Medien-URL mit "/ sitecore / shell / ~ / media / ..." zurück

9

"urllink" ist ein ComputedIndexField in Sitecore-Indexen.

Wenn Sie die Indexe neu erstellen, beginnen die URLs, die im Index gespeichert werden, mit "/ ~ / media / ...", was korrekt ist.

Aber wenn die Indexstrategie onPublishEndSync lautet und ich meine Medienelemente erneut veröffentliche, beginnen die URLs mit "/ sitecore / shell / ~ / media /...".

Ich habe den Sitecore-Quellcode überprüft, der Unterschied ist Context.Site. Beim Neuaufbau des Indexes ist es null, daher wird "/" als Präfix verwendet. aber es ist "Sitecore-Shell" beim Publishing. Daher wird Context.Site.VirtualFolder von Sitecore Shell verwendet, also "/ sitecore / shell".

Ich denke, das ist ein Sitecore-Fehler. ATM Ich denke, meine eigene UrlLink ComputedIndexField-Klasse zu erstellen und MediaUrlOptions mit AbsolutePath = false als Fix zu verwenden.

Wollen Sie nur wissen, ob ich etwas vermisse und es sich eigentlich nicht um ein Sitecore-Problem handelt?

Danke!

    
zhankezk 03.12.2014, 13:22
quelle

1 Antwort

4

Nur um ein Update dafür zu geben. Bestätigt von Sitecore ist es ein Fehler. Sie finden einen Workaround, ich werde hier aktualisieren, wenn sie es tun.

Danke.

------------- aktualisiert am 15/12/2014 ----------------------

Das Ticket ist jetzt geschlossen. Die Lösung von Sitecore besteht darin, dieses Feld "urlLink" in der Zukunft aus dem Index zu entfernen (sie sagten, dass sie dies anfordern werden).

Grund dafür ist, dass die URL vom LinkManager basierend auf dem aktuellen Site-Kontext generiert werden sollte. Der Site-Kontext existiert jedoch nicht während der Indizierung (Bei Inhaltselementen können Sie den Pfad überprüfen, bei Medien können Sie dies nicht).

Natürlich gibt es eine andere Lösung, um Ihr eigenes computeredField zu erstellen, um die Logik für Medienelemente zu überschreiben. Wie auch immer, ich stimme Sitecore zu, es fühlt sich richtiger an, dieses Feld aus dem Index zu entfernen.

Außerdem war der Grund für die Verwendung des URL-Felds, dass Sitecore nicht mehr vollständig abgefragt werden musste, während eine Suche durchgeführt wurde. Der gesamte Inhalt stammt aus dem gespeicherten Feldwert von Index. Auf der anderen Seite wird die Paginierung normalerweise für Suchergebnisse verwendet. Daher sollten selbst Anfragen an Sitecore nicht viel sein.

Das wäre alles für jetzt, glücklich, mehr Meinungen zu sehen und zu diskutieren, danke!

    
zhankezk 08.12.2014, 07:02
quelle