Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

idProductTOC

On this page

Table of Contents
maxLevel1
excludeOn this page
typeflat
separator |

...

Summary

There are many macros available that allow for external content to be displayed in Confluence. For instance, macros from SQL, HTML, Excel for Confluence, and Markdown for Confluence plus macros like JSON Table Macro and CSV Macro. Even though the content appears on a Confluence page, the data will is not be included in the Confluence search index since it is not included in the markup of the page. One way to include the content so that it is searchable in Conflunece is to use the Cache Macro. How to index external content using the Run macro is an alternative way to do this. The advantage of using the cache macro technique is that the search result returned will be is the actual page the content is on.

...

  • The content should be independent of the user accessing the page, otherwise the content will change changes depending on who last visited the page and caused the cache to be updated
  • Consider automating the updating of the content by using the CSOAP to render the page on a regular basis
  • Additional processing is required for each time the cache is refreshed. Specifically, the page will be is indexed more often than before
  • No change in behavior of the cache macro when the new index feature is not used
  • An additional index extractor is involved in indexing operations:
    • Very low overhead for pages that do not use new feature
    • Can be disabled for the site from Manage Add-on (UPM) by disabling the module (after expanding all modules)

Index Parameter

The following An additional parameter is available on the cache macro:

index - If index=true, the cached content

...

is added to the Confluence search index. Default is "false". Whenever the cached data is updated, the page

...

is re-indexed.

Examples

SQL queries

No Format
{cache:index=true}
The results from the SQL query will be indexed for search.
{sql-query:dataSource=ReportDS}
select * from report
{sql}
{cache}

...

Assume there is a page that has a cache macro instance that specifies index=true

  • Whenever the page is viewed, then either
    • cache is valid (cache is current according to the refresh parameter and the age of the cached data) - the cached data is used as normal
    • cache is expired - the data within the cache macro is rendered and the rendered data is stored in the cache as normal. In addition, the page is flagged as needing to be re-indexed since the dynamic content of the page has changed due to the new rendering.
  • The standard indexing queue is processed as normal by all the registered content extractors. The cache macro has added a new content extractor to process pages with cached content.
    • The page

...

    • is recognized by the cache macro extractor and cause the appropriate cached content to be added to the content that

...

    • is indexed for the page

What data is indexed?

The cache macro renders contents of the macro into HTML and stores the HTML in the cache. The cache content extractor processes the HTML data from the cache and extracts only the text and attribute fields using the Jericho HTML Parser.

...