Are you using the crawler, i.e. an index with 'Connections', and crawling the website? If not, Find won't know about your meta tags since it's just indexing your content types by listening to when content items are updated.
No, I'm not using the crawler.
Is there any best practice way to set a flag for not indexing a certain object? (I can find "Ignoring properties" in the documentation, but nothing about whole objects.)
You can control this by conventions, please see http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-Find/10/Integration/EPiServer-75/Indexing/.
Given I have a property called ExcludePageFromSearch in my base class for all page types, I usually create an extension method that checks if the editor wants to exclude that page:
public static FilterBuilder<T> ExcludeEditorChosenPages<T>(this FilterBuilder<T> filterBuilder) where T : IContent { return filterBuilder .And<T, SitePageDataBase>(x => x.ExcludeFromSearch.Match(false)); }
Then I call this method from an initializable module:
SearchClient.Instance.Conventions.UnifiedSearchRegistry.ForInstanceOf<PageData>() .PublicSearchFilter(client => client.BuildFilter<PageData>() .ExcludeEditorChosenPages());
Oh, and the reason I'm using a filter and not excluding the pages from the index completely, is because they should still be searchable in edit mode.
You might be looking for:
//using EPiServer.Find.Cms.Conventions; ContentIndexer.Instance.Conventions .ForInstancesOf<PageTypeToNotIndex>() .ShouldIndex(x => false);
In addition to Johans great suggestions I have made a post on how to filter this on indexing, read more here:
I've created a test page which contains the tag . However, this page still shows up in Find's search results. Thus, is the default behavior for Find not to respect the "noindex" tag?