簡單搜尋實作指南

「簡單」搜尋實作是​Adobe Summit實驗室AEM Search Demystified​中的資料。 本頁包含本實驗的資料。 有關實驗室的指導教程,請查看本頁的「演示」部分中的實驗室工作簿。

搜尋架構概觀

演示材料

書籤

工具

章節

以下章節連結假設初 套件已安裝在AEM作者上,位於http://localhost:4502

套件

初始包

章節套件

參考材料

更正和後續行動

實驗室討論的更正和澄清以及與會者對後續問題的回答。

  1. 如何停止重新索引?

    可通過AEM Web Console > JMX提供的IndexStats MBean停止重新索引

  2. Oak索引如何支援多個租戶?

    Oak支援將索引貫穿內容樹狀結構,且這些索引只會在該子樹狀結構內建立索引。 例如,/content/site-a/oak:index/cqPageLucene​僅可在​/content/site-a下建立為內容索引。

    等效方法是在​/oak:index​下的索引上使用​includePaths​和​queryPaths​屬性。 例如:

    • /oak:index/siteAcqPageLucene@includePaths=/content/site-a
    • /oak:index/siteAcqPageLucene@queryPaths=/content/site-a

    此方法的考量如下:

    • 查詢必須指定與索引的查詢路徑範圍相等的路徑限制,或者必須是該索引的子體。
    • 範圍更廣的索引(例如/oak:index/cqPageLucene)也將為資料建立索引,從而導致重複獲取和磁碟使用成本。
    • 可能需要重複配置管理(例如 如果多個租用戶索引必須滿足相同的查詢集,則在這些索引中添加相同的indexRules)
    • 此方法最適合在AEM Publish層級提供自訂網站搜尋,如同在AEM Author,查詢通常會在內容樹狀結構上方針對不同租戶(例如,透過OmniSearch)執行 — 不同的索引定義只會根據路徑限制而導致不同行為。
  3. 所有可用分析器的清單在哪裡?

    Oak會公開一組lucene提供的分析器設定元素,以用於AEM。

  4. 如何在同一查詢中搜尋頁面和資產?

    AEM 6.3的新功能,是在同一個提供的查詢中查詢多個節點類型的功能。 下列QueryBuilder查詢。 請注意,每個"sub-query"都可解析為其自己的索引,因此在此範例中,cq:Page子查詢解析為/oak:index/cqPageLucene,而dam:Asset子查詢解析為/oak:index/damAssetLucene

    group.p.or=true
    group.1_group.type=cq:Page
    # add all page restrictions to this group
    group.2_group.type=dam:Asset
    # add all asset restrictions to this group
    

    導致以下查詢和查詢計畫:

    QUERY:(//element(*, cq:Page) | //element(*, dam:Asset))
    
    PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) *:* */ union [dam:Asset] as [a] /* lucene:damAssetLucene(/oak:index/damAssetLucene) *:* */
    

    透過QueryBuilder DebuggerAEM Chrome外掛程式探索查詢和結果。

  5. 如何在同一查詢中搜尋多個路徑?

    AEM 6.3的新功能,是可在相同提供的查詢中跨多個路徑查詢。 下列QueryBuilder查詢。 請注意,每個「子查詢」都可解析為自己的索引。

    group.p.or=true
    group.1_group.type=cq:Page
    group.1_group.path=/content/docs/en/6-2
    # add all page restrictions to this group
    group.2_group.type=cq:Page
    group.2_group.path=/content/docs/en/6-3
    # add all asset restrictions to this group
    

    生成以下查詢和查詢計畫

    QUERY: (/jcr:root/content/docs/en/_x0036_-2//element(*, cq:Page) | /jcr:root/content/docs/en/_x0036_-3//element(*, cq:Page))
    
    PLAN: [cq:Page] as [a] /* traverse "/content/docs/en/6-2//*" where isdescendantnode([a], [/content/docs/en/6-2]) */ union [cq:Page] as [a] /* traverse "/content/docs/en/6-3//*" where isdescendantnode([a], [/content/docs/en/6-3]) */
    

    透過QueryBuilder DebuggerAEM Chrome外掛程式探索查詢和結果。

本頁內容