почему opencms использует код java для сортировки документов контента, кроме использования sql, например, дата desc, имя 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;
        }
    }

person Jack Hu    schedule 09.08.2013    source источник


Ответы (1)


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

<cms:contentload collector="byQuery" 2 param="type:v8flower"> 
    <cms:contentaccess var="content" /> 
    ${content.value.Title} 
</cms:contentload> 
person Ben    schedule 07.10.2013