Monday, November 08, 2010 at 12:05 AM.
system.verbs.builtins.searchEngine.indexCurrentPage
on indexCurrentPage (adrPageTable, siteName, adrStopWords=nil) { <<Call this script from your finalFilter. <<This will keep your site's index up-to-date. <<Whenever you build a page, the index is updated. if defined (adrPageTable^.requestHeaders) { //is this a dynamic page? return (false)}; //only index when writing to disk, not during dynamic generation local (url, title, pageText); local (adrIndex, adrPreviews); local (adrPage = adrPageTable^.adrObject); local (flDynamic = false); adrIndex = searchEngine.getIndexAddress (siteName); adrPreviews = searchEngine.getPreviewsAddress (siteName); if adrStopWords == nil { adrStopWords = @searchEngine.data.stopWords}; bundle { //from where do we get the page text? case typeOf (adrPage^) { wpTextType; outlineType; stringType { true}} else { flDynamic = true}; //use the rendered text rather than the text of the page source if not (html.getPagePref ("regularIndex", adrPage)) { flDynamic = true}}; <<Set the indexThisPage directive to false to skip a page. if not (html.getPref ("indexThisPage", adrPageTable)) { return (false)}; //don't index this page bundle { //get the text of the page if flDynamic { pageText = adrPageTable^.renderedText} else { pageText = string (adrPage^)}}; bundle { //get the url and title of the page url = adrPageTable^.url; title = adrPageTable^.title}; msg ("Search Engine: Indexing: " + adrPage); <<Create a preview for this page. <<This should always be done before adding a page to the index. searchEngine.createPreview (pageText, title, url, adrPage, adrPreviews, clock.now ()); <<Add the page to the index. <<It's okay to call this verb if the page has been indexed before. searchEngine.indexPage (adrPage, url, title, pageText, adrIndex, adrStopWords); <<Save the guest database containing the index. searchEngine.saveIndex (siteName, adrIndex); return (true)}
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.