Monday, November 08, 2010 at 12:04 AM.

system.verbs.builtins.mainResponder.search.server.restartIndex

on restartIndex (siteName, flMessages=false) {
	<<Delete all pages from the index that are in the specified site.
		<<Returns the number of pages deleted.
	
	local (indexPath = mainResponder.search.utilities.getIndexPath ());
	
	mainResponder.search.utilities.assureIndex ();
	
	local (adrIndex = @[indexPath].index);
	local (adrPageInfoTable = @[indexPath].pageInfo);
	
	local (i, lowerSiteName = string.lower (siteName));
	local (ctDeletes = 0);
	
	<<Loop through all indexed pages, looking for pages in this site.
	for i = sizeOf (adrPageInfoTable^) downTo 1 {
		local (adrPageInfo = @adrPageInfoTable^ [i]);
		local (url = nameOf (adrPageInfo^));
		
		if flMessages {
			msg ("Search Engine: checking " + url)};
		
		if defined (adrPageInfo^.siteName) {
			local (lowerPageSite = string.lower (adrPageInfo^.siteName));
			
			<<Is this page in the site?
			if lowerPageSite == lowerSiteName {
				<<Delete this page from the index.
				
				if flMessages {
					msg ("Search Engine: de-indexing " + url + "...")};
				
				mainResponder.search.server.deIndexPage (url);
				ctDeletes++}};
		
		sys.systemTask ()};
	
	if flMessages {
		msg ("Search Engine: Saving Index.root...")};
	
	fileMenu.save (indexPath);
	
	msg ("");
	
	return (ctDeletes)}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.