簡易搜尋實作指南 simple-search-implementation-guide

簡易搜尋實作是來自​ Adobe Summit實驗室AEM Search Demystified ​的資料。 本頁包含本實驗室的材料。 如需實驗室的導覽,請檢視本頁簡報區段中的實驗室活頁簿。

搜尋架構概述

簡報資料 bookmarks

書籤 bookmarks-1

工具 tools

章節 chapters

以下章節連結假設初始套件安裝在AEM Authorhttp://localhost:4502 ​上

套件 packages

初始封裝 initial-packages

章節套件 chapter-packages

引用的材料 reference-materials

更正與跟進 corrections-and-follow-up

實驗室討論的更正和說明,以及與會者後續問題的回答。

  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公開一組供AEM使用的lucene提供的分析器設定元素。

  4. 如何在相同的查詢中搜尋頁面和Assets?

    AEM 6.3的新功能是在相同提供的查詢中查詢多個節點型別。 下列QueryBuilder查詢。 請注意,每個「子查詢」都可以解析為自己的索引,因此在此範例中,cq:Page子查詢解析為/oak:index/cqPageLucenedam:Asset子查詢解析為/oak:index/damAssetLucene

    code language-plain
    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
    

    結果會產生下列查詢與查詢計畫:

    code language-plain
    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查詢。 請注意,每個「子查詢」都可以解析為自己的索引。

    code language-plain
    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
    

    下列查詢和查詢計畫中的結果

    code language-plain
    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外掛程式探索查詢和結果。

recommendation-more-help
bb44cebf-d964-4e3c-b64e-ce882243fe4d