|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
org.activemath.webapp.dict.
See:
Description
| Interface Summary | |
|---|---|
| IndexConstants | A pack of constant strings to be used to manipulate the search index. |
| Class Summary | |
|---|---|
| AMIndex | A class to describe the index for searching through the content extracted from MBase and maintained by the content-update-events. |
| AMIndexSearcher | |
| AMSearchUtilities | |
| IndexDescriptor | A simple class to read and write index-descriptor XML file from the disk. |
| IndexRunner | |
| QueryMaker | Deprecated. This class should be replaced by the classes of the package
org.activemath.omdocjdom.index.queries. |
whose front end is in package org.activemath.webapp.dict.
The search tool functions and features are explained in ActiveMath's Software page about Search, and in the Paul Libbrecht's Thesis in chapter 6.
The main mission of the search tool is to offer an easy to use access to individual OMDoc content items by the paradigm of information retrieval: input of a small query and browsing through (parts of) a result list. This search should be error-tolerant and should be working for users in any language.
This package contains the following services:
AMIndexorg.activemath.omdocjdom.index.analysis
and centralized by the AMAnalyzer.AMAbstractQuery
to the index-level queries.Some services are provided by classes outside this package:
SearchController
which includes objects to represent user-level queries
as well as classes and velocity code to present search resultsThe ActiveMath search tool can be grasped by browsing the source code or by exploring its functions as a user and as an advanced user.
Expert users are typically authors which have a broader choice of queries in the advanced search and are shown all the content items, not only the ones deemed applicable to the learners.
Authors will be often helped by the query syntax of the simple search which is documented there.
Author users can make use of the analyze function presented on the bottom of the search-tools' item-display with the letter "A". Clicking on this link presents a decomposition as token-streams of each of the fields this item will be decomposed in.
Expert users can also make use of the explain function which is available by a double-click on the little score-bullets on the left of the items of the search-results. This explanation shows the lucene-level query and the score of each of its parts.
Indexing of the search tool is done at the same time as the content-storage
reload (see org.activemath.omdocjdom.slumb): on reload start, the invalidated
items' index-documents are deleted, the new content items are passed to the
search tool indexer (see AMIndex), as well
as start and end signals.
The analysis process, however, employs a slight trick because only readers and strings
can be passed as data objects: the analyzer is only passed an ID and the analyzer
picks the the JDOM object from the
ContentExtractor.
The indexing method convert the JDOM objects into a set of named fields, each containing sequences of tokens.
Searching is done in the classical way Lucene does: a user enters a query
which is submitted to the SearchController;
the latter maintains a DictionaryState made
mostly of org.activemath.webapp.dict.AMAbstractQuery.
To be executed, this query is expanded into a query on each of the fields (applying
analysis for some fields, respecting language). That query is run at Lucene
which returns a list of documents in order of relevance (according to the query).
The documents are then used to pick the ID which is used to present the search result
list and the individual item views.
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||