首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Aem全文搜索

Aem全文搜索
EN

Stack Overflow用户
提问于 2016-03-06 20:47:01
回答 6查看 5.3K关注 0票数 1

尝试调试查询http://localhost:4502/libs/cq/search/content/querydebug.html时,它返回与查询不匹配的结果。例如,如果想要在所有节点中搜索'foo Bar',我需要接收包含'Foo bar‘、'foo BAR’的所有节点,但不只是'foo‘和' bar’,而不是'foo-bar‘。服务中的查询是使用QueryBuilder完成的。

EN

回答 6

Stack Overflow用户

发布于 2016-08-24 00:37:03

当您尝试执行类似于SQL的查询时,QueryBuilder非常有用。正如您所经历的那样,查询调试界面的全文搜索功能非常有限。

但是,请记住,AEM使用底层Lucene和/或Solr索引,并且它确实提供了一种执行原生solr / lucene查询的方法。

  • 首先创建一个嵌入式solr索引(对于本地开发的AEM实例来说,embedded就足够了),如https://docs.adobe.com/docs/en/aem/6-0/deploy/upgrade/queries-and-indexing.html中的“使用嵌入式SOLR服务器配置AEM”中所述。
  • 索引完成后(从日志中可以看到),您可以使用crx/de查询接口执行本机查询。示例查询:select [jcr:path] from [nt:base] where native('solr', '<filter>?<solr_query_goes_here>'。很明显,您需要熟悉solr查询。感谢下面的幻灯片分享(幻灯片50讨论了AEM中的本机查询) http://www.slideshare.net/justinedelson/demystifying-oak-search

AEM对原生solr查询的支持还不够完善。您可能需要手动编辑SOLR模式xml文件(在crx-quickstart文件夹下创建),以添加其他过滤器、自定义字段等。我们已经成功地调整了AEM中的solr,以便使用上述方法执行空间搜索。

票数 1
EN

Stack Overflow用户

发布于 2016-03-07 21:31:37

如果您需要"foo bar"的各种组合,那么您必须查询:

fulltext=foo bar

你只能得到前10个结果。要获得所有功能,您需要:

p.limit=-1

您可能需要指定路径:

path=/content/website/

请访问Adobe Query Builder API了解更多信息。

票数 0
EN

Stack Overflow用户

发布于 2016-05-17 14:38:05

在幕后,AEM创建一个xpath查询,然后执行它。然后,对于查询中没有映射到xpath的任何部分,它都会遍历结果并对其进行过滤。

您还应该考虑是否存在要匹配的属性,而不是任何文本。这会给你带来更好的结果,因为你想要准确。现在您撒的网太广了,我认为您应该考虑限制if,除了性能原因。这只是个建议。

你说结果与你的查询不匹配,你能告诉我们结果是什么吗?你能把你真正的问题写在这里吗?这将使帮助变得更容易。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35826997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档