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.