Как использовать заказ с несколькими isdescendantnode

Я пытаюсь получить несколько узлов одного типа из разных областей в jcr и упорядочить их по дате.

SELECT * FROM [social:asiResource] 
WHERE [sling:resourceType] = 'social/qna/components/hbs/topic' AND 
[isFeatured_b] = true AND 
NOT CONTAINS([cq:tags],'administrative:blacklist') AND 
(ISDESCENDANTNODE([/path/to/content]) OR 
ISDESCENDANTNODE([/path/to/content]))
ORDER BY [cq:lastModified] DESC

Это вернет мне правильный набор результатов, но не в правильном порядке. На самом деле изменяя DESC в ASC никак не влияет на результаты.

Мое решение в настоящее время состоит в том, чтобы сделать несколько запросов и выполнить объединение, которое позволяет ORDER BY функционировать так, как должно.

SELECT * FROM [social:asiResource] 
WHERE [sling:resourceType] = 'social/qna/components/hbs/topic' AND 
[isFeatured_b] = true AND 
NOT CONTAINS([cq:tags],'administrative:blacklist') AND 
ISDESCENDANTNODE([/path/to/content]) 
UNION 
SELECT * FROM [social:asiResource] WHERE 
[sling:resourceType] = 'social/qna/components/hbs/topic' AND 
[isFeatured_b] = true AND 
NOT CONTAINS([cq:tags],'administrative:blacklist') AND 
ISDESCENDANTNODE([/path/to/content])
ORDER BY [cq:lastModified] DESC

К сожалению, у меня есть около 30 узлов, которые я ищу, делая последний запрос непригодным для использования. Есть ли способ использовать ORDER BY без использования UNION?

1 ответ

Начальный запрос теперь работает. Похоже, что некоторые другие факторы привели к ORDER BY не дает достоверных результатов.

Уточнить вы можете ORDER BY при использовании нескольких ISDESCENDANTNODE"S.

Другие вопросы по тегам