DocumentatieAEMTutorials voor AEMAEM Sites-tutorials

Eenvoudige gids voor implementatie van zoekopdrachten

Laatst bijgewerkt: 5 mei 2025
  • Van toepassing op:
  • Experience Manager 6.4
  • Experience Manager 6.5
  • Onderwerpen:
  • Zoeken

Gemaakt voor:

  • tussenpersoon
  • Ervaren
  • Ontwikkelaar

De Eenvoudige onderzoeksimplementatie is de materialen van het gedemystificeerde het laboratoriumAEM van Adobe Summit Onderzoek. Deze pagina bevat de materialen van dit laboratorium. Voor een geleide rondleiding van het laboratorium, te bekijken gelieve het werkboek van het Laboratorium in de sectie van de Presentatie van deze pagina.

Overzicht van de Architectuur van het Onderzoek

Presentatiemateriaal

  • Lab-werkboek
  • Presentatie

Bladwijzers

Gereedschappen

  • Manager van de Index
  • verklaart Vraag
  • CRXDE Lite> /oak:index/cqPageLucene
  • de Manager van het Pakket van CRX
  • Foutopsporing QueryBuilder
  • Generator van de Definitie van de Index van Oak

Hoofdstukken

de verbindingen van het Hoofdstuk hieronder veronderstellen de Aanvankelijke Pakkettenop de Auteur van AEM bijhttp://localhost:4502 geïnstalleerd zijn

  • Hoofdstuk 1
  • Hoofdstuk 2
  • Hoofdstuk 3
  • Hoofdstuk 4
  • Hoofdstuk 5
  • Hoofdstuk 6
  • Hoofdstuk 7
  • Hoofdstuk 8
  • Hoofdstuk 9

Pakketten

Eerste pakketten

  • Tags
  • Eenvoudig pakket met zoektoepassingen

Hoofdstukpakketten

  • Hoofdstuk 1-oplossing
  • Hoofdstuk 2-oplossing
  • Hoofdstuk 3-oplossing
  • Hoofdstuk 4-oplossing
  • Hoofdstuk 5 instellen
  • Hoofdstuk 5-oplossing
  • Hoofdstuk 6-oplossing
  • Hoofdstuk 9-oplossing

Materialen waarnaar wordt verwezen

  • Github bewaarplaats
  • Sling Models
  • het Verdelen ModelExporter
  • QueryBuilder API
  • AEM Chrome Plug-in( pagina van de Documentatie)

Correcties en follow-up

Correcties en verduidelijkingen uit de laboratoriumdiscussies en antwoorden op vervolgvragen van deelnemers.

  1. hoe te ophouden opnieuw indexerend?

    Het opnieuw indexeren kan via IndexStats MBean beschikbaar via de Console van het Web van AEM > JMXworden tegengehouden

    • http://localhost:4502/system/console/jmx/org.apache.jackrabbit.oak%3Aname%3Dasync%2Ctype%3DIndexStats

      • Voer abortAndPause() uit om het opnieuw indexeren af te breken. Hierdoor wordt de index vergrendeld om opnieuw te indexeren totdat resume() wordt aangeroepen.
      • Als u resume() uitvoert, wordt het indexeringsproces opnieuw gestart.
    • Documentatie: https://jackrabbit.apache.org/oak/docs/query/indexing.html#async-index-mbean

  2. hoe kan de indexen veelvoudige huurders steunen?

    Oak ondersteunt het plaatsen van indexen door de inhoudsstructuur en deze indexen indexeren alleen binnen die substructuur. /content/site-a/oak:index/cqPageLucene kan bijvoorbeeld alleen onder /content/site-aworden gemaakt om inhoud te indexeren.

    Een equivalente aanpak is het gebruik van de eigenschappen includePaths en queryPaths op een index onder /oak:index . Bijvoorbeeld:

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

    De overwegingen met deze benadering zijn:

    • De vragen MOETEN een wegbeperking specificeren die aan het werkingsgebied van de de vraagweg van de index gelijk is, of daar een nakomeling van zijn.
    • Met bredere bereikindexen (bijvoorbeeld /oak:index/cqPageLucene) worden de gegevens ook geïndexeerd, wat leidt tot dubbele invoer en kosten voor schijfgebruik.
    • Mogelijk is dubbel configuratiebeheer vereist (bijvoorbeeld het toevoegen van zelfde indexRules over veelvoudige huurdersindexen als zij de zelfde vraagreeksen moeten voldoen)
    • Deze benadering wordt het best gediend op de AEM Publish rij voor het onderzoek van de douanesite, aangezien op de Auteur van AEM, het voor vragen gemeenschappelijk is om bij hoog de inhoudsboom voor verschillende huurders (bijvoorbeeld, via OmniSearch) te worden uitgevoerd - de verschillende indexdefinities kunnen in verschillend gedrag resulteren die slechts op de wegbeperking wordt gebaseerd.
  3. waar is een lijst van alle beschikbare Analysatoren?

    Oak stelt een reeks lucene-verstrekt de configuratieelementen van de analysator voor gebruik in AEM bloot.

    • Apache Oak Analyzers documentatie

      • Tokenizers
      • Filters
      • CharFilters
  4. hoe te om naar Pagina's en Assets in de zelfde vraag te zoeken?

    Nieuw in AEM 6.3 is de capaciteit om voor veelvoudige knoop-types in de zelfde verstrekte vraag te vragen. De volgende query QueryBuilder. Elke subquery kan worden omgezet in een eigen index. In dit voorbeeld wordt de subquery cq:Page omgezet in /oak:index/cqPageLucene en de subquery dam:Asset wordt omgezet in /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
    

    resultaten in het volgende vraag en vraagplan:

    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) *:* */
    

    Onderzoek de vraag en de resultaten via Debugger QueryBuilderen AEM Chrome Plug-in.

  5. hoe te over veelvoudige wegen in de zelfde vraag te zoeken?

    Nieuw in AEM 6.3 is de capaciteit om over veelvoudige wegen in de zelfde verstrekte vraag te vragen. De volgende query QueryBuilder. Merk op dat elke "sub-query"tot zijn eigen index kan oplossen.

    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
    

    resultaten in het volgende vraag en vraagplan

    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]) */
    

    Onderzoek de vraag en de resultaten via Debugger QueryBuilderen AEM Chrome Plug-in.

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