|
|
|
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 <body> 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 "<identifier>.exists", where <identifier> has to have the value
|
|
|
|
passed by the %i symbol. This file indicates the existance of the index.
|