Ich benutze Sitecore 7 und den Solr Search Provider. Ich habe derzeit die Website-Setup, um den Suchindex beim Veröffentlichen eines Elements zu aktualisieren.
Ich habe bemerkt, dass, wenn der CMS-Autor verschiedene Versionen eines Elements erstellt und diese dann in den Index eingibt, die vorherige Version des Elements nicht aus dem Index entfernt wird, sodass der Index mehrere Versionen desselben Sitecore-Elements enthält.
Kennt jemand Einstellungen, die ich ändern kann, um sicherzustellen, dass die vorherige Version vor dem Hinzufügen der neuen Version aus dem Index entfernt wurde?
Ich habe versucht, Code wie unten auszuführen, um die Elemente vor der Veröffentlichung aus dem Index zu entfernen, aber die Delete-Methode im Index scheint nichts zu löschen.
%Vor%Jede Hilfe sehr geschätzt.
Ich habe Sitecore kontaktiert und sie haben gesagt, dass dies wahrscheinlich ein Bug ist und sie untersuchen.
Als Workaround empfiehlt Sitecore, die Filter für eingehende und ausgehende Nachrichten zu verwenden, um Elemente im Index zu filtern.
Hier finden Sie weitere Informationen:
UPDATE: @Jason in den Kommentaren wies darauf hin, dass dies jetzt ein Support-Fix dafür ist - siehe Knowledge Base-Artikel - Ссылка
Müssen Sie wirklich die alten Versionen entfernen? Es gibt ein virtuelles Feld, das Sie für die Suche nach der neuesten Version definieren können. Fügen Sie einfach eine Eigenschaft wie diese zu Ihrer POCO (oder Basisklasse) hinzu und verwenden Sie sie, um in Ihrer Linq-Abfrage zu filtern:
%Vor%Beachten Sie, dass der Name des Feldes in der Solr-Standardkonfiguration (_lastestversion) anders ist als in der Lucene-Konfiguration (_latestversion).