Как использовать заказ с несколькими 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.