Почему opencms использует Java-код для сортировки документов содержимого, кроме использования sql, например "date desc, name asc"?

Интересно, есть ли другие методы, которые можно использовать здесь лениво? Кажется, очень сложно определить новый компаратор. Вот код метода сравнения CmsDateResourceComparator:

    public int compare(CmsResource res0, CmsResource res1) {

    if (res0 == res1) {
        return 0;
    }

    CmsDateResourceComparator key0 = m_keys.get(res0.getStructureId());
    CmsDateResourceComparator key1 = m_keys.get(res1.getStructureId());

    if (key0 == null) {
        // initialize key if null
        key0 = CmsDateResourceComparator.create(m_cms, res0, m_dateIdentifiers);
        m_keys.put(res0.getStructureId(), key0);
    }
    if (key1 == null) {
        // initialize key if null
        key1 = CmsDateResourceComparator.create(m_cms, res1, m_dateIdentifiers);
        m_keys.put(res1.getStructureId(), key1);
    }

    if (m_asc) {
        // sort in ascending order
        if (key0.m_date > key1.m_date) {
            return 1;
        }
        if (key0.m_date < key1.m_date) {
            return -1;
        }
    } else {
        // sort in descending order
        if (key0.m_date > key1.m_date) {
            return -1;
        }
        if (key0.m_date < key1.m_date) {
            return 1;
        }
    }

1 ответ

Начиная с OpenCms 8 вы можете использовать Solr byQuery Collector. С помощью этого коллектора вы можете выполнять solr запросы. Это мощная функция...

<cms:contentload collector="byQuery" 2 param="type:v8flower"> 
    <cms:contentaccess var="content" /> 
    ${content.value.Title} 
</cms:contentload> 
Другие вопросы по тегам