Sortieren nach Produkten nach Erstellungsdatum in EE mit SOLR

7

Ich muss die Produktkollektion nach Erstellungsdatum sortieren. Es ist ein statisches Attribut in der Produktentitätstabelle. SOLR kann nach eav-Attributen indizieren und sortieren. Eine Möglichkeit besteht darin, ein neues Attribut zu erstellen und das Datum beim Speichern des Produkts zu kopieren. Irgendwelche anderen Vorschläge? Ideen, wie Sie dem SOLR-Index am besten benutzerdefinierte Daten hinzufügen können?

Amasty
quelle

Antworten:

4

Wenn Sie sich auf das Produkt created_atund die updated_atAttribute beziehen, kommentieren Sie einfach das ->addVisibleFilter()Raster im Katalogproduktattribut-Raster im Administrator aus und setzen Sie die Felder Suchen und Sortieren einfach auf Ja Jetzt in der catalogsearch_fulltextTabelle, die Enterprise Solr erkennt und die Daten auch zu seinen Dokumentendatensätzen hinzufügt.

HINWEIS: Vergessen Sie nicht, die Änderung des Kerncodes zu entfernen oder dies natürlich über den lokalen Codepool zu tun, wenn Sie möchten.

class Mage_Adminhtml_Block_Catalog_Product_Attribute_Grid extends Mage_Eav_Block_Adminhtml_Attribute_Grid_Abstract
{
    /**
     * Prepare product attributes grid collection object
     *
     * @return Mage_Adminhtml_Block_Catalog_Product_Attribute_Grid
     */
    protected function _prepareCollection()
    {
        $collection = Mage::getResourceModel('catalog/product_attribute_collection');
            //->addVisibleFilter();
        $this->setCollection($collection);

        return parent::_prepareCollection();
    }

Danach möchten Sie Solr wissen lassen, dass es sich um ein sortierbares Metadatenfeld handelt.

Enterprise / Search / Model / Adapter / Abstract.php werden Sie bemerken:

/**
 * Store common Solr metadata fields
 * All fields, that come up from search engine will be filtered by these keys
 *
 * @var array
 */
protected $_usedFields = array('sku', 'visibility', 'in_stock');

Möglicherweise möchten Sie auch die Methode überprüfen: _prepareIndexProductDatain

Unternehmen / Suche / Modell / Adapter / Abstract.php

/**
 * Prepare index data for using in search engine metadata.
 * Prepare fields for advanced search, navigation, sorting and fulltext fields for each search weight for
 * quick search and spell.
 *
 * @param array $productIndexData
 * @param int $productId
 * @param int $storeId
 *
 * @return  array|bool
 */
protected function _prepareIndexProductData($productIndexData, $productId, $storeId)

Ich habe nur die Fähigkeit getestet, die "nicht sichtbaren" Attribute zu bearbeiten, und die Hinzufügung zur Volltexttabelle bestätigt. Derzeit wird Solr nicht lokal ausgeführt, um es zu testen, aber theoretisch sollte es funktionieren, ohne dass gespiegelt werden muss überflüssige Daten.

Hoffe das hilft!

B00MER
quelle