Simple Search
The Alkaline search engine finds documents on an internet site,
several unrelated internet sites or an intranet domain. To search
for any information you have to type in a sequence of words that
define what you are looking for. The search engine will output
a list of results, best results first. Alkaline searches exact
words and word heuristics (parts of words) only. It does not do
fuzzy or misspelled words search. Alkaline does not search phrases
(yet).
A simple search is done by typing a word. Searching for light
will find all pages containing light , light ning, delight ed,
etc. It will also find pages with Light and Light ning because
searching is case-insensitive by default.
Searching multiple words is done by typing a sequence of words
separated by spaces. Searching for ricky blue will find all pages
containing Ricky , tricky , blue , blue s, etc. Pages containing
both words will be shown first in the results. Pages with these
two words in the title or in meta tags will be more relevant.
Case-sensitive search can be enabled by using a single capital
letter inside a word. For example, searching for Intranet let
will find all pages containing Intranet and let ter, but will
not list pages with just intranet . Case-sensitivity applies to
the word with capital characters only.
Entire words can be searched by using quotes. Searching for "net"
will find pages containing net and Net , searching for "Net" will
of course find only pages containing Net because of the capital
N enabling the case-sensitive search.
Meta Data Search
Meta search can be done by specifying a meta tag followed by a
column, for example author:foo . You can get refined meta results
too, for example author:+"Foo" and +author:"Foo" will produce
same output. Searching author:"Foo Bar" is equivalent to author:"Foo"
author:"Bar" .
All case-sensitivity, full and partial word rules apply with
the meta data search. The meta tag name is never case-sensitive
and is always exact.
Boolean Search
Boolean search allows to lookup pages containing some word and
not containing other. To express the fact that a page must contain
a word, a + sign must be placed in front of the word. To search
for all pages not containing a word, a - sign should be used.
For example, you can search +net -"Internet" which will show pages
containing net , network , etc., only if they don't contain Internet
. Note that searching for -word or +foo -foo will produce no results.
Refined boolean search can be done by mixing a boolean expression
with normal words. Searching +net +Foo bar will sort results showing
pages containing net , Foo and optionally bar first.
Numeric Data Search
Alkaline will index words, such as price=234 , in a special manner.
You can consequently perform a numeric data search: price<234
, price=234 or price>234 .
All rules about case-sensitivity are preserved with the meta
search. There is no partial word support for numerical meta tags,
if the words "price=234", "aprice=234" and "priced=234" are in
the index, searching for price=234 will only find "price=234"
.
Restricting Search Scope
To define a scope means to specify a more precise location of
a document or to restrict the search query to a particular range.
Url scoping is particularly useful as Alkaline is capable of indexing
multiple sites with the same daemon.
Host scope is specified by adding the rightmost part of a host
entry, such as host:.host.com to the search query. For example,
to search foo in documents at http://www.foo.com, the following
command should be issued: foo host:.foo.com . It is possible to
specify multiple hosts by writing more than one host: elements
in your search string. For example: host:.bar.com host:.foo.com
+foo -bar will return all documents indexed at *.foo.com, *.bar.com
containing "foo" and not containing "bar".
Path scope is specified by adding the leftmost part of a path
without the leading slash, such as path:foo/bar to the search
string. For example, to search foo in documents at http://www.foo.com/foo/bar,
the following command should be issued: host:www.foo.com path:foo/bar
foo .
It is possible to mix host: and path: as it is possible to specify
multiple path entries.
Url scope is specified by adding the leftmost part of a complete
url, including the leading http:// , such as url:http://www.foo.com/bar
or url:file:///foo/bar to the search string. If you choose to
omit the protocol, http:// is assumed. For example, to search
foo in documents at http://www.foo.com/bar, the following command
should be issued: url:www.foo.com/bar foo . To specify a scope
to urls with spaces and other special characters, use the encoded
url value, such as url:www.foo.com/foo%20bar .
File extension scope is specified by adding the rightmost part
of a filename without the leading dot, such as ext:cpp,h to the
search string. Multiple extensions can either be specified separated
by commas or by adding more than one ext: parameter to the search
string. For example to search foo in all .bar documents, the following
command should be issued: ext:bar foo .
Alkaline will return documents matching the search query and
any of the host:, path: or url: scope options and the ext: scope
delimiter, if present. As usual if no scope is specified, the
entire indexed domain is searched. It is possible to specify multiple
values in all scope delimiters by separating them with commas
or by adding multiple scope options to the search string.
Meta scoping is specified by adding meta:name1[,name2] to the
search string. Multiple meta tag names can either be separated
by commas or by adding more than one meta: parameter to the search
string. For example to search foo bar in all keywords only, the
following command should be issued: foo bar meta:keywords , which
is equivalent to keywords:foo keywords:bar . Meta scoping was
added in version 1.6.
Restricting Date Scope
To search documents modified after or before a specified date
add before: and/or after: to the search string followed by a valid
date of one of the following forms DDMMYY, DD/MM/YY, DD.MM.YY,
DD-MM-YY, DDMMYYYY or DD/MM/YYYY.
You can specify both before and after , for example before:12.05.1999
after:01.05.1999 will return all documents between these two dates.
Note that the bounds are not included in the search results.
Forcing Search Options
By default, Alkaline will choose a case-sensitive search when
at least one upper-case letter is present in a word. To search
all words case-sensitive, opt:case should be added to the search
string. To search all words case-insensitive, opt:insens should
be used.
To search all pages containing all words, opt:and should be added
to the search string. The default behavior of Alkaline is to search
all pages containing any of the words and producing best results
first.
To force searching of whole words only, opt:whole should be added
to the search string. The default behavior of Alkaline is to do
partial matches.
It is of course possible to specify more than one such option
by separating them by commas or by adding multiple opt: entries
to the search string, for example: foo opt:whole,case will return
all pages containing the exact word "foo".
Hints and Techniques
Punctuation is not indexed, but future versions might use it for
phrasal search. Searching a word with a comma will be unsuccessful
because the comma is used as any other character together with
other punctuation marks.
A dash "-" is a common character, except placed in the beginning
of a word that is not quoted (boolean search). Words with a dash
can be searched and indexed. Alkaline can search and index numbers
and words with digits.
Accentuated characters, such as in French, are translated into
respective variants (é to e, à to a, etc.) at both search and
index. Multilingual servers using Alkaline might have this feature
removed to enable searching of Russian text for example.