KHelpcenter Search Handlers =========================== Searching documents in KHelpcenter is handled by document-type-specific search handlers. Each searchable document provides provides a document type in its meta data and if a corresponding handler is found, it can be searched. Search handlers are described by a desktop file which is put in the khelpcenter app directory in a "searchhandlers" directory. The desktop file contains the information about which document types the handler covers, how to do a search query and how to create a search index. A search handler has to provide a command line tool based interface. There has to be a command to do a query and, if previous creation of an index is required, a command to create a search index. The search commands returns its results as HTML on stdout. Search Query ------------ KHelpcenter reads the command to execute for submitting a search query from the search handler's desktop file ("SearchCommand"). The search command can contain some symbols which are replaced by KHelpcenter with the data for the concrete search request: %i Identifier of document (usually the name of the document's desktop file) %w Words to be searched for %o Operation for combining multiple search words. Allowed values: "and" and "or". %m Maximum number of results %d Directory containing search indices Search Query Result ------------------- The result has to be returned as HTML page. The content of the tag will be extracted and inserted in the search results page. If there is no body tag, the complete result text will be inserted. Building a Search Index ----------------------- KHelpcenter reads the command to build a search index from the search handler's desktop file ("IndexCommand"). The indexing command can contain some symbols which are replaced by KHelpcenter with the data for the concrete index creation call: %i Identifier of document (usually the name of the document's desktop file) %d Directory containing search indices %p Path to document to be indexed Index Creation Result --------------------- As result of the indexing command an index is created in the directory specified by KHelpcenter. The format and structure of the index is handler-specific. When index creation is finished the indexing command has to create a special file with the name ".exists", where has to have the value passed by the %i symbol. This file indicates the existance of the index.