1. AdvSearch
      1. AdvSearch.AdvSearch
        1. AdvSearch.AdvSearch.tpl
        2. AdvSearch.Advsearch.paging1Tpl
        3. AdvSearch.AdvSearch.paging0Tpl
        4. AdvSearch.AdvSearch.containerTpl
        5. Advsearch.AdvSearch.extractTpl
      2. AdvSearch.AdvSearchHelp
        1. AdvSearch.AdvSearchHelp.helplinkTpl
      3. AdvSearch.AdvSearchForm
        1. Advsearch.AdvSearchForm.tpl
    2. getYoutube
    3. aliasid
    4. AddHeaderfiles
    5. AjaxUpload
    6. amazonSES mailing list
    7. Analytics
    8. Archivist
      1. Archivist.Archivist
        1. Archivist.Archivist.tpl
      2. Archivist.ArchivistGrouper
      3. Archivist.getArchives
        1. Archivist.getArchives.tpl
    9. Articles
      1. Articles.Theming Articles
      2. Articles.Retrieving the next and previous article
      3. Articles.Roadmap
      4. Articles.Retrieving Articles Outside of Articles
      5. Articles.Creating a Blog
    10. Babel
      1. Babel.BabelLinks
      2. Babel.BabelTranslation
    11. BannerX
    12. BannerY
    13. Batcher
      1. Batcher.Roadmap
    14. bdListings
      1. bdListings.bdCategories
      2. bdListings.bdHookNewListing
      3. bdListings.bdListings
      4. bdListings.bdPriceGroups
      5. bdListings.bdRedirect
      6. bdListings.bdTargets
    15. boilerX
      1. bx-head-open
      2. bx-head-append
      3. bx-head-close
      4. bx-container-open
      5. bx-container-close
      6. bx-bottom-open
      7. bx-bottom-close
    16. BreadCrumb
      1. BreadCrumb.containerTpl
      2. BreadCrumb.currentCrumbTpl
      3. BreadCrumb.linkCrumbTpl
      4. BreadCrumb.maxCrumbTpl
    17. Breadcrumbs
    18. BxrExtra
    19. cachebuster
    20. CamperManagement
      1. CamperManagement.Customizing the Component
      2. CamperManagement.Developing the front-end
        1. CamperManagement.cmCamperDetails Snippet
        2. CamperManagement.cmCampers Snippet
        3. CamperManagement.Placeholders you can use
      3. CamperManagement.Managing your vehicle
      4. CamperManagement.Module home
    21. Church Events Calendar
      1. ChurchEvents.MODX Manager functions
      2. ChurchEventsCalendar Snippet
        1. ChurchEvents.Managing events
      3. ChurchEventsList Snippet
      4. ChurchEventsRss Snippet
    22. Cliche
    23. ClientConfig
    24. CMPGenerator
      1. CMPGenerator.5 minute example
      2. CMPGenerator.Foreign Databases
    25. ContextRouter
    26. CookieList
    27. CronManager
    28. cssSweet
      1. cssSweet.lighten
      2. cssSweet.modval
      3. cssSweet.prefix
    29. CustomUrls
    30. Databackup
    31. Discuss
      1. Discuss.ChunkMap
      2. Discuss.Contributing
      3. Discuss.Controllers
        1. Discuss.Controllers.board
          1. Discuss.Controllers.board.xml
        2. Discuss.Controllers.home
        3. Discuss.Controllers.login
        4. Discuss.Controllers.logout
        5. Discuss.Controllers.profile
        6. Discuss.Controllers.register
        7. Discuss.Controllers.search
        8. Discuss.Controllers.thread
      4. Discuss.Creating a Discuss Theme
      5. Discuss.Database Model
      6. Discuss.Features
      7. Discuss.Getting Started
      8. Discuss.Installation
        1. Discuss.Installation from Git
      9. Discuss.Roadmap
      10. Configuring Sphinx for Search
    32. DitsNews
    33. Eletters
      1. Eletters.API
      2. Eletters.FormIt
      3. Eletters.Import CSV
      4. Eletters.Templates
    34. EventManager
      1. EventManager.emListEvents
      2. EventManager.emNewReservationHook
    35. eventsCalendar2
      1. eventsCalendar2.eventsCalendar2
      2. eventsCalendar2.Generating events
      3. eventsCalendar2.tplCalendar2
      4. eventsCalendar2.tplCell2
      5. eventsCalendar2.tplEvent2
      6. eventsCalendar2.tplHead2
    36. EventsX
      1. EventsX.Examples
    37. ExerPlan
    38. fastField
    39. FileDownload R
      1. FileDownload R.FileDownload
      2. FileDownload R.FileDownloadLink
      3. FileDownload R.Plugins
    40. FileLister
      1. FileLister.FileLister
        1. FileLister.FileLister.directoryTpl
        2. FileLister.FileLister.fileLinkTpl
        3. FileLister.FileLister.fileTpl
        4. FileLister.FileLister.pathTpl
      2. FileLister.Roadmap
    41. FirstChildRedirect
    42. Flexibility
    43. ForcedPasswdChange
    44. FormIt
      1. FormIt.FormItCountryOptions
      2. FormIt.FormItRetriever
      3. FormIt.FormItStateOptions
      4. FormIt.Hooks
        1. FormIt.Hooks.email
        2. FormIt.Hooks.FormItAutoResponder
        3. FormIt.Hooks.math
        4. FormIt.Hooks.recaptcha
        5. FormIt.Hooks.redirect
        6. FormIt.Hooks.spam
      5. FormIt.Roadmap
      6. FormIt.Tutorials and Examples
        1. FormIt.Examples.Custom Hook
        2. FormIt.Examples.Simple Contact Page
        3. FormIt.Handling Selects, Checkboxes and Radios
        4. FormIt.Using a Blank NoSpam Field
      7. FormIt.Validators
    45. FormIt2db
    46. FormitFastPack
      1. FormitFastPack.Tutorial
      2. FormitFastPack.fieldSetDefaults
      3. FormitFastPack.field
      4. FormitFastPack.fiGenerateReport
    47. FormSave
    48. FoundationX
      1. FoundationX.How to Use FoundationX
    49. FX2themebase
      1. FX2.How to Use FX2
        1. FX2.For Theme Authors
      2. FX2.Included Extras
    50. Gallery
      1. Gallery.Example1
      2. Gallery.Gallery
        1. Gallery.Gallery.containerTpl
        2. Gallery.Gallery.thumbTpl
      3. Gallery.GalleryAlbums
        1. Gallery.GalleryAlbums.rowTpl
        2. Gallery.GalleryAlbums.containerTpl
      4. Gallery.GalleryItem
        1. Gallery.GalleryItem.albumTpl
        2. Gallery.GalleryItem.GalleryItemPagination
        3. Gallery.GalleryItem.tagTpl
        4. Gallery.GalleryItem.tpl
      5. Gallery.Plugins
        1. Gallery.Plugins.Galleriffic
        2. Gallery.Plugins.Slimbox
      6. Gallery.Roadmap
      7. Gallery.Setting Up the GalleryItem TV
      8. Gallery.Setting Up Your Gallery
    51. GatewayManager
    52. gCal
    53. getDate
    54. getFeed
      1. getFeed.Adding a Twitter Feed
    55. getPage
    56. getRelated
    57. getResourceField
    58. getResources
      1. getResources.Examples
        1. getResources.Building a RSS feed
        2. getResources.Category Index Page with Thumbnails
        3. getResources.Google XML Sitemap
    59. getUrlParam
    60. getRTImages
    61. getVimeo
    62. GoogleSiteMap
      1. GoogleSiteMap.GoogleSiteMap
        1. GoogleSiteMap.GoogleSiteMap.containerTpl
        2. GoogleSiteMap.GoogleSiteMap.itemTpl
      2. GoogleSiteMap.Roadmap
    63. GridClassKey
    64. HandyMan
      1. HandyMan.Frequently Asked Questions
      2. HandyMan.Installation
      3. HandyMan.Roadmap
    65. Hits
    66. HitsPage
    67. HybridAuth
      1. HybridAuth.Integrating Facebook
      2. HybridAuth.Integrating Google
      3. HybridAuth.Integrating Twitter
      4. HybridAuth.Integrating VK.com
    68. If
    69. Image+
    70. imageHERE
    71. ImageStyles
    72. ImportX
    73. LexRating
    74. Lingua
    75. Login
      1. Login.ChangePassword
      2. Login.ConfirmRegister
      3. Login.ForgotPassword
      4. Login.Login
      5. Login.Profile
      6. Login.Register
        1. Register.Example Form 1
      7. Login.ResetPassword
      8. Login.Roadmap
      9. Login.Tutorials
        1. Login.Basic Setup
        2. Login.Extended User Profiles
        3. Login.Request Membership
        4. Login.User Profiles
        5. Login.Using Custom Fields
        6. Login.Using Pre and Post Hooks
      10. Login.UpdateProfile
    76. Loginza
      1. Loginza.Loginza
      2. tpl.Loginza.login
      3. tpl.Loginza.logout
      4. tpl.Loginza.profile
    77. mChimpX
    78. MetaX
    79. mhPayPal
      1. mhPayPal.Snippet Usage
        1. mhPayPal.Snippet Usage.Hooks
        2. mhPayPal.Snippet Usage.Templating
    80. MIGX
      1. MIGX.Backend-Usage
      2. MIGX.Data-Entry
      3. MIGX.Frontend-Usage
      4. MIGX.Tutorials
        1. MIGX.Fancybox-images with seperate placeholders in Richtext-Content
        2. MIGX.Simple opening hours table
        3. Using resource-specific mediasource and multifile-uploader with MIGX
        4. MIGX.Varying layout-boxes
          1. MIGX.Varying layout-boxes.Configurator-Version
        5. Creating Selectable and Sortable lists for MIGX
        6. MIGX.sortable resourcelist
        7. Using resource-specific mediasource and multifile-uploader with MIGX
    81. MIGXdb
      1. MIGXdb.Configuration
      2. MIGXdb.Tutorials
        1. MIGXdb.Create a basic gallery-management from scratch with MIGXdb
        2. MIGXdb.Create doodles manager with help of MIGXdb
        3. MIGXdb.Manage Child-Resources in a grid-TV with help of MIGXdb
        4. MIGXdb.Manage Events-Resources in a CMP with help of MIGXdb
    82. MinifyX
    83. miniShop
      1. miniShop.Screenshots
    84. modActiveDirectory
    85. ModDef
    86. modExtra
    87. modMobile
    88. modSwiftMailer
    89. mxCalendar
      1. mxCalendar.Examples
      2. mxCalendar.Placeholders
    90. mxExtendedMenu
    91. mxFormBuilder
      1. mxFormBuilder.Create Form
      2. mxFormBuilder.Hooks
      3. mxFormBuilder.Field Types
      4. mxFormBuilder.Create Form List in TV
      5. mxFormBuilder.Fields
    92. mxHasTvs
    93. MoneyBird
      1. MoneyBird.Contacts
      2. MoneyBird.Invoices
      3. MoneyBird.NrFormat
    94. ObfuscateEmail-Revo
    95. PackMan
      1. PackMan.Roadmap
    96. PageBreaker
      1. PageBreaker.PageBreaker
      2. tpl.PageBreaker.ajax
      3. tpl.PageBreaker.navigation
    97. Peoples
      1. Peoples.PeopleGroup
        1. Peoples.PeopleGroup.userTpl
      2. Peoples.PeopleGroups
        1. Peoples.PeopleGroups.tpl
      3. Peoples.Peoples
        1. Peoples.Peoples.tpl
      4. Peoples.Roadmap
    98. PHP Tidy (plugin)
    99. phpThumbOf
    100. Polls
      1. Polls.Polls
      2. Polls.PollsLatest
      3. Polls.PollsPrevious
      4. Polls.PollsResult
    101. POI Manager
    102. QuickCrumbs
      1. QuickCrumbs.Example
    103. Quip
      1. Quip.Quip
        1. Quip.Quip.tplComment
        2. Quip.Quip.tplCommentOptions
        3. Quip.Quip.tplComments
        4. Quip.Quip.tplReport
      2. Quip.QuipCount
      3. Quip.QuipLatestComments
      4. Quip.QuipReply
        1. Quip.QuipReply.tplAddComment
        2. Quip.QuipReply.tplLoginToComment
        3. Quip.QuipReply.tplPreview
      5. Quip.QuipRss
      6. Quip.Roadmap
      7. Quip.Upgrading
        1. Quip.Upgrading to 1.0.1
    104. Rampart
      1. Rampart.hook.RampartFormIt
      2. Rampart.hook.RampartQuip
      3. Rampart.preHook.RampartRegister
    105. Redirector
    106. renderResources
    107. ResourceWatcher
    108. RezImgCrop
    109. Rowboat
      1. Rowboat.Rowboat
    110. sekFancyBox
      1. sekFancyBox & Gallery
    111. sekFormTools
      1. sekFormTools.input.autocomplete
      2. sekFormTools.input.combobox
      3. sekFormTools.input.datepicker
      4. sekFormTools.input.helper
      5. sekFormTools.input.textfield
      6. sekFormTools Advanced Examples
    112. sekSiteTools
      1. sekSiteTools.easytabs
      2. sekSiteTools.google.analytics
      3. sekSiteTools.printdiv
    113. sekUserGalleries
      1. sekUserGalleries.album.items.helper
      2. sekUserGalleries.album.items.manage
      3. sekUserGalleries.album.manage
      4. sekUserGalleries.album.view
      5. sekUserGalleries.browse.galleries
      6. sekUserGalleries.directory
      7. sekUserGalleries.image.information
      8. sekUserGalleries.search
      9. sekUserGalleries.users.gallery.manage
      10. sekUserGalleries.users.gallery.view
    114. selfLink
    115. Shopkeeper
    116. siblingNav
    117. SimpleSearch
      1. SimpleSearch.Roadmap
      2. SimpleSearch.SimpleSearch
        1. SimpleSearch.Faceted Search Through PostHooks
        2. SimpleSearch.SimpleSearch.containerTpl
        3. SimpleSearch.SimpleSearch.currentPageTpl
        4. SimpleSearch.SimpleSearch.pageTpl
        5. SimpleSearch.SimpleSearch.tpl
      3. SimpleSearch.SimpleSearchForm
        1. SimpleSearch.SimpleSearchForm.tpl
      4. SimpleSearch.Solr
    118. SiteEditor
    119. sitemapFriend
    120. Slideshow Manager
      1. jgSlideshow Snippet
      2. Slideshow Manager CMP
    121. sLink
    122. SmartOptimizer
    123. SmartTag
    124. StatCache
    125. SocialLogin
    126. SocialSuite
      1. SocialSuite.getFacebookPhotos
      2. SocialSuite.getFacebookProfile
      3. SocialSuite.getFacebookShares
      4. SocialSuite.getGooglePlusShares
      5. SocialSuite.getTwitterProfile
      6. SocialSuite.prettyNumbers
    127. spieFeed
    128. StaticSaver
    129. StoreLocator
    130. SubscribeMe
      1. SubscribeMe.Configuring API Credentials, IPN and going Live
      2. SubscribeMe.Setting up the Payment Flow
        1. SubscribeMe - Listing the Products
        2. SubscribeMe - Setting up the Payment Methods
        3. SubscribeMe - Subscription Confirmation Page
      3. SubscribeMe.User Account Management
    131. SyntaxChecker
    132. TaggingAtoZ
    133. tagLister
      1. tagLister.getResourcesTag
      2. tagLister.tagLister
        1. tagLister.tagLister.all
        2. tagLister.tagLister.tpl
      3. tagLister.tolinks
        1. tagLister.tolinks.tpl
    134. TinyMCE
      1. TinyMCE.Spellchecker
      2. TinyMCE.Table controls
      3. TinyMCE.Template
    135. Upload to Users CMP
    136. VersionX
      1. VersionX.Roadmap
    137. virtuNewsletter
    138. VisionCart
      1. VisionCart.Back-end
        1. VisionCart.Category management
        2. VisionCart.Module management
        3. VisionCart.Option management
        4. VisionCart.Order management
        5. VisionCart.Product management
        6. VisionCart.Shop management
      2. VisionCart.Front-end
        1. VisionCart.vcGetCategories
          1. VisionCart.vcGetCategories.tpl
        2. VisionCart.vcGetProducts
          1. VisionCart.vcGetProducts.tpl
        3. VisionCart.vcWayfinder
      3. VisionCart.General
        1. VisionCart.Templating
        2. VisionCart.UserManagement
      4. VisionCart.vcGetProductImages
      5. VisionCart.vcGetProductOptions
    139. Wayfinder
      1. Wayfinder Introductory Examples
    140. xFPC
    141. Tagger

getRelated

This is a user-contributed Extra. If you find issues or would like more info or help, please contact the author.

getRelated is a snippet for MODX Revolution that helps you list related resources.

It allows you to customize the algorithm through its vital &fields property allowing you to specify fields to use in comparison and the weight every field has.

Links & History

Version
Released On
Highlights
1.2.0-pl
June 7th, 2012
Add &stopwords property, properly handling multiple calls per page, can also be used with Russian now.
1.1.2-pl January 21st, 2012 Add &hideContainers property. Prevent E_NOTICE errors. Fix &includeDeleted property.
1.1.1-pl December 10th, 2011 Fix issue with &parents. Fix issue with &fields with only one resource field chosen.
1.1.0-pl December 4th, 2011 Adds TVs to the result set using new &returnTVs propery, and also a new &exclude property to hide certain results.
1.0.2-pl
November 10th, 2011
Fixes bug with filtering out current resource, now searches case insensitively and fixes ignoreHidden and ignoreUnpublished properties. Also improves legibility of debug data.
1.0.1-pl(2)
October 26th, 2011
Fixes bugs with tpl properties, &parents and &fields
1.0.0-pl
October 13th, 2011
First public release. Versions < 1.0 were only released for HandyMan Contributors through its beta channel.

The source is public at Github: https://github.com/Mark-H/getRelated
... which is also the place for bugs and feature requests: https://github.com/Mark-H/getRelated/Issues

Discussion on the forum in this topic: http://forums.modx.com/thread/71009/getrelated-automatically-listing-related-resources-for-revolution

Developed by Mark Hamstra for Vierkante Meter.

How getRelated works (Mandatory Read!)

To properly use the properties to customize the results, it is important to understand how getRelated works.

The following steps are taken in collecting related resources:

  1. getRelated finds the resource you are using as the base, usually the current resource. It takes the fields you specify (&fields) and tears them apart to find distinct words.
  2. It uses stopwords, defined in the language specific lexicons, to filter out common stop words leaving only words that really should matter.
  3. It uses the related words in a database query limited to the contexts, parents (and their children) you define to find only resources that contain one or more of these resources. This is the comparison sample. This is done for resource fields and template variables based on your fields property.
  4. The sample is processed against the weights you define in your fields property (&fields) to calculate a ranking for each of those resource. 
  5. The result set is sorted based on ranking (highest ranking first) and then outputted on screen using the tpl properties.

The properties below can be used to customize behavior in one or more of the steps above. In the table below you can find the step(s) a property applies to.

Snippet Properties

Property
Step(s)
Description
Default Value
resource 1
Either the Resource ID to find related resources for or "current" or empty to find related for the current resource. current
fields 1, 3, 4
Comma separated list of fieldname:weight to use in the comparison. Prefix TVs with "tv.". Don\'t use the content unless you want to kill performance. Example of use: pagetitle:3,tv.MyTags:7,tv.MySubjects:15,introtext:2 pagetitle:3,introtext:2
defaultWeight
4
(int) Weight to assign to fields that don't have a weight set specifically. 5
returnFields 5 (3)
Resource Fields (use &returnTVs for template variables) to include in the output. By default you will have access to the resource ID as well.
pagetitle,longtitle,introtext
returnTVs 5 Specify a comma separated list of TV names to include in the results. These TVs are not used in the comparison process, but are only retrieved when returning the top ranking results. Do not prefix with "tv." like you would in the &fields property.  
parents 3
Comma separated list of parents to use in finding related resources  
parentsDepth 3
The depth to search parents for 10
exclude 3 Comma separated list of resource IDs you want to exclude from the results.  
contexts 3
Comma separated list of Contexts to search in current
includeUnpublished 3
[1|0] Also use unpublished resources in the result set.
0
includeHidden 3
[1|0] Also use resources marked as hidden in menus in the result set. Set to 0 to exclude them.
1
hideContainers 3 [1|0] Added in 1.2.0. When set to 1 this will exclude resources which have "isfolder" set to true, ie those that are containers. 0
stopwords
2
Added in 1.2.0 | A comma separated list of words to filter out of the match data, on top of the language specific stopwords.
 
limit 5
Number of related resources to output to screen.
3
fieldSample 3
Number of resources to collect for the sample in comparing based on resource fields. Can have a huge impact on performance so if you're experiencing long load times, try decreasing this number or adjusting the stopwords in your language lexicon. 125
fieldSort 3
Resource field to sort by in collecting the sample, used in conjunction with the fieldSample propert. (Does not sort the related resources output, only the sample used in determining related resources!) createdon
fieldSortDir 3
Sort direction for the fieldSort property, used in collecting the sample.
desc
tvSample 3
Number of TV results to include (note: one resource can have more than one result depending on your fields property) in the sample in comparing based on TV values. 125
tvSort 3
Resource field to sort by in the TV query, used in conjunction with the tvSample property. (Does not sort the related resources output, only the sample used in determining related resources!) createdon
tvSortDir 3
Sort direction for the tvSort property, used in collecting the sample.
desc
tplOuter 5
Chunk name to use as outer (or wrapper) template. The [[+wrapper]] placeholder will be filled with the individual rows, separated by whatever is in the rowSeparator property (see below). Placeholders you can use are [[+count]] and [[+wrapper]].


<h3>[[%getrelated.pagesfound? &namespace=`getrelated` &count=`[[+count]]`]]</h3>
<ul>
  [[+wrapper]]
</ul>
relatedOuter
tplRow 5
Chunk name to use as row template, used in every related resource.

The placeholders you can use include the fields in your &fields property (minus TVs), as well as those in the returnFields property. The resource ID is always accessible with [[+id]], the ranking (the result of the algorithm) as [[+rank]] and the number of the result with [[+idx]].

Default chunk (stored as file in core/components/getrelated/elements/chunks/):

<li>
  <a href="[[~[[+id]]]]" title="[[+longtitle:default=`[[+pagetitle]]`]]">
    [[+longtitle:default=`[[+pagetitle]]`]] ([[+rank]])
  </a>
</li>
relatedRow
noResults 5
Text or output when there are no related resources found. (Hint: you could add a [[$chunk]] to the property to output that when there are no results: &noResults=`[[$chunkname]]`) "No related pages found."
rowSeparator 5
String to use as separator between rows. \n
debug   [1|0] Enable/disable debug mode. When enabled it will dump lots of information on screen. 0

Usage

There is absolutely no valid reason that I can think of to call this snippet uncached. Especially when you are running a bigger site, calling the snippet uncached can easily result in a great performance hit that is simply not needed. This snippet looks at resource data, and by default the cache is cleared when a resource is updated. So in between resource updates there is no data change that getRelated cares about. SO DO NOT CALL IT UNCACHED!!!

If you're not sure you're calling it uncached: Uncached snippets are prefixed with an exclamation mark: [[!snippetname]], so we will want to use it without the exclamation mark: [[snippetname]].

The minimum snippet call for getRelated to use is just the tag itself.

[[getRelated]]

This creates an unordered list with a max of three related resources based on the pagetitle and introtext. You can further refine that using the &fields property (see above) to use your tag or category TV or another field that contains a brief summary or keywords.

Optimizing Performance

If you're getting a slow performance caused by getRelated, here's some suggestions/thoughts:

  1. Make sure the snippet is called cached! I wont help you figuring out slow performance if you are not caching this snippet..
  2. Do not use fields like the content as there will simply be too much
  3. It is possible the query used to collect the sample is too broad. There can be multiple causes & fixes for that:
    1. There is no translation for the language you use yet, resulting in the English stopwords being stripped and not stopwords in your native language. There's a real easy fix that will benefit others as well: translate the English Lexicon to your language & send it back for inclusion in the addon. Do not translate the long list of stop words in there, but rather find a list of stopwords in your language from a reliable source.
    2. All your resources use similar words (a company name, the name of a product being sold, or your editor's favorite word) resulting in the sample being distorted by that. If you enable debug (&debug=`1` in the snippet) you can see the Match Data which are the words that will be matched, so you can verify if there's any words use that it shouldn't.
      If that is the case, you can filter out these words by adding them to the "getrelated.stopwords" lexicon in your language. Go to System > Lexicon Management and in the dropdown that defaults to "core" select "getrelated". If not using English, select the right language from the language drop down as well. Now find the stopwords lexicon and add the words distorting the result set to the list. If you think the stopwords should be added to the main package, file a bug report.
  4. Your site has too much related resources. If you have too much resources and have optimized what you could with the above options, you could:
    1. Adjust the sample sizes. The default settings resulting in test results of around 1 second which is "okay" for a first load (cause you are getting results from the cache after that, right?!), but this depends on the number of the fields you are using, whether they are resource fields or TVs and in general how the values are stored in the database. If you use a lot of TVs in your &fields property, you can bring the tvSample down to, say, 50 to only get 50 results per TV. If you use 3 TVs, that could theoretically bring down the total amount of resources being processed from 375 to 150.
      To make sure you still get the right results, you can change order in which the sample is fetched with tvSort and tvSortDir as well as fieldSort and fieldSortDir. By default it sorts on the createdon date, with the newest first.
  5. It could be that the returnTVs property with a lot of TVs and a large result set has a performance impact. I haven't tested this extensively, but you should try to keep your result set limited (see earlier tips) and only use the TVs you really need.
  6. It's a bug! While this addon has gone through testing on various installs and site sizes, it's possible something weird is going on. Please post in the forum topic or on Github and we can see what's going on. (links above)