The IndexCrawler
Abstract
Take an existing index and execute functions over it.
The IndexCrawler
is a crawler that takes an existing index and executes a group of functions over it.
The IndexCrawler
inherits from the FlatDataCrawler<T>
. This means that you can pass a list of IIndexables
and it iterates over them, then executes a function on each IIndexable
and commits it back to the index.
This an example of what you can use it for: Go through every document in the index and add “!!” to the name of every document. The code would look like this:
var crawler = new IndexCrawler(this.sourceIndexName);
crawler.CrawlFunctions += this.CallMe;
this.DestinationIndex.AddCrawler(crawler);
this.DestinationIndex.Rebuild();
public IEnumerable<IIndexable> CallMe(IProviderSearchContext context)
{
var list = new List<IIndexable>();
foreach (var item in context.GetQueryable<InsertDocument>())
{
item.Name = item.Name + "!!";
list.Add(new ObjectIndexable(item, null));
}
return list.AsEnumerable();
}