2017-02-13 41 views
0

我们正在从AEM 6.0和6.2中移动一些项目,其中一个应用程序有错误并且文档没有帮助。小写查询构建器查询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部分结果。在我的情况下,“博士”的价值当现有节点的Dr. Lawrence Wu返回页面时什么也不返回。

任何帮助表示赞赏

+0

小评论我尝试使用%作为通配符,因此最后一行将是 1_property.value =%Dr.% –

+0

您使用的是自定义索引还是默认索引? ACS Explain查询工具可以帮助您找到已使用的索引,并且您可以检查其聚合属性rulese。它必须是全文索引,以获得您想要的结果。似乎你正在打一个房地产指数。 –

回答

1

你有一个错字或可能在你的样品/代码中的错误:

1_property。 opertaion =像

代替:

1_property.operation=like 

在这旁边,我不知道的事情,有在6.0和6.2之间的QueryBuilder的执行任何区别。所有查询构建器查询在执行之前都转换为SQL2。您可以设置日志级别到调试的以下软件包才能看到你的日志的实际查询:

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

您还可以使用query debug servlet来测试您的查询,并查看最终生成的xpath。选项p.hits=full仅在结果中包含所有属性或仅包含一小部分属性(例如路径,名称,标题等)时控制