Press Ctrl / CMD + C to copy this to your clipboard.
This post will be reported to the moderators as potential spam to be looked at
I've created a page containing a Block List with some elements.
Every element in the block list has a field "contentTitle" wich I would like to add to the examine external index.
I'm trying to find a way to index those properties, because in a page I could have any amounts of block element.
Reading through the examine documentation I could not find anything related to Block List, where can I find some hint?
Thanks in advance for your help.
I've not worked with the blocklist myself, but i think you can add a custom field to the external index of umbraco with the values you need from your blocklist. For example you could create a custom index field with the value of all the blocklist items combined to search on.
public class IndexComposer : ComponentComposer<IndexComponent>
public class IndexComponent : IComponent
private readonly IExamineManager _examineManager;
private readonly IUmbracoContextFactory _umbracoContextFactory;
public IndexComponent(IExamineManager examineManager, IUmbracoContextFactory umbracoContextFactory)
_examineManager = examineManager;
_umbracoContextFactory = umbracoContextFactory;
public void Initialize()
if (_examineManager.TryGetIndex(Constants.UmbracoIndexes.ExternalIndexName, out IIndex index))
index.FieldDefinitionCollection.AddOrUpdate(new FieldDefinition("blockListTitles", FieldDefinitionTypes.FullText));
if (index is BaseIndexProvider baseIndex)
baseIndex.TransformingIndexValues += OnTransformingIndexValues;
private void OnTransformingIndexValues(object sender, IndexingItemEventArgs e)
if (e.ValueSet.Category != IndexTypes.Content) return;
using (var context = _umbracoContextFactory.EnsureUmbracoContext())
var contentId = int.Parse(e.ValueSet.Id);
var content = context.UmbracoContext.Content.GetById(contentId);
if (content is BlocklistPage contentPage) // Your page type
// Add some checks if the page has any blocklist items
var blocks = contentPage.Value<IEnumerable<BlockListItem>>("myBlocksProperty");
e.ValueSet.Add("blockListTitles", string.Join(",", blocks.Select(x => x.Content.Value("contentTitle"))));
/// There is no termination logic for this component
public void Terminate()
is working on a reply...
Write your reply to:
Image will be uploaded when post is submitted