-
Notifications
You must be signed in to change notification settings - Fork 4
/
requirements.txt
78 lines (56 loc) · 2.6 KB
/
requirements.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
eZ Component: Search, Requirements
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:Author: Derick Rethans
:Revision: $Revision: 7370 $
:Date: $Date: 2008-02-14 12:47:43 +0000 (Thu, 14 Feb 2008) $
Introduction
============
Description
-----------
The Search component provides an interface to index and query documents with
different search engine backends. Searching is becoming an integral part of
web sites, this is becoming an important feature.
Requirements
============
The components should implement an API that supports multiple backends.
Towards all backends the same API should work to index and search for
documents.
Document
--------
The format of the documents that can be indexed, and search for, need to be
able to be defined by the component. Hereby we think about specifying the
different fields that form a document. Each of the fields should be mapped to
a data type that the different backends understand. The document
specification should allow for easy definition, and the same specification
should be used for both indexing and searching for documents. The
specification could also re-map field names and data types to field names
and data types that the backends understand.
Indexing
--------
Indexing should be done by sending the documents to an indexer. Indexing
should support both blocking, and non-blocking mode, depending on what the
search engine backend supports. The search component must support XML for
backend communication.
Searching
---------
Searching documents is primarily term based. One or multiple terms are
provided, and the search result list contains only documents containing those
term.
Facets_ should be supported, and the available facets should be the document
fields, and facets queries within the document fields.
General
-------
For querying the index, some mechanism for handling permissions should be
supported to limit the search results.
The query API should allow for easy searches, similar to an SQL query.
Therefore a similar interface as Database's SQL abstraction would be a
preferred querying language. This querying interface should allow for
abstractions of differences in search backend querying dialects. Searches
should also allow for limitation of meta data, such as publication date/time.
Special considerations
======================
It is important that as many backends could be supported through this
component, so it is important that the external API does not prevent some
functionalities of the backends to be exposed. The component will only deal
with UTF-8 strings, just like all the other components.
.. _facets: http://www.searchtools.com/info/faceted-metadata.html