2017-02-13 4 views
0

Мы работаем над перемещением некоторых проектов из AEM 6.0 и 6.2. В одном из приложений есть ошибка, и документация не была help.her - это запрос запроса построчного запросаQuerybuilder в AEM 6.2 возвращает другой результат, чем AEM6.0

type=cq:page 
path=/content/nera/en/experts 
p.hits=full 
p.nodedepth=1 
1_property.opertaion=like 
1_property=jcr:content/jcr:title 
1_property.value=Dr. 

Проблема в том, что даже если операция установлена ​​так, как будто возвращаются только полные совпадения. частичные совпадения не возвращают никаких результатов, однако возвращаются частичные результаты AEM 6.0. В моем случае значение «Доктор» ничего не возвращает, пока доктор Лоуренс Ву, который является существующим узлом, возвращает страницу.

Любая помощь оценили

+0

Небольшой комментарий Я попытался использовать символ% в качестве подстановочного знака, поэтому последняя строка будет 1_property.value =% Dr.% –

+0

Вы используете пользовательские индексы или индексы по умолчанию? Инструмент ACS Explain query поможет найти индекс, который был использован, и вы можете проверить его правила. Он должен быть полным текстовым индексом для желаемых результатов. Похоже, вы попадаете в индекс собственности. –

ответ

1

У вас есть опечатка или, возможно, ошибка в вашем образце/код:

1_property. opertaion = как

вместо:

1_property.operation=like 

Кроме этого, я не вещь, что есть какая-то разница в реализации QueryBuilder между 6.0 и 6.2. Все запросы построителя запросов преобразуются в SQL2 перед их выполнением. Вы можете установить уровень журнала в DEBUG для следующих пакетов, чтобы увидеть фактические запросы в журнале:

  • org.apache.jackrabbit.oak.query
  • com.day.cq.search

Вы также можете протестировать свои запросы, используя query debug servlet и посмотреть, что именно происходит в конце пути. Опция p.hits=full управляет только в том случае, если все свойства включены в результат или только небольшой набор из них (например, путь, имя, название и т. Д.)

Смежные вопросы