Open
Description
We can extend the records-rest documentation (after #170 is merged) with the following:
Query parser
~~~~~~~~~~~~
/records/?q=....
RECORDS_REST_ENDPOINTS['search_factory']
By default the easy query string query parser is used. Features:
- field names + operators
- exists/missing
- ranges
- wildcards, regular expressions
- fuziness
- proximity search
- boosting
Legacy Invenio query parser
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax
- Replacing the query parser.
Suggesters
~~~~~~~~~~
/records/_suggest?text=...
- Config
- Make sure data is properly indexed.
suggesters[my_url_param_to_complete]
Advanced customization
~~~~~~~~~~~~~~~~~~~~~~
Replace the search factory to do very advanced querying - i.e. exact control over
what is sent to elasticsearch.
Max results
Error handlers
Record class Fetch record from ES instead of database.
Serialization
-------------
Key feature is transforming records from JSON to other formats. E.g. JSON-JSON,
removing sensitive information, enriching, stable output format, or standardized formats like
DataCite, DublinCore,
Content negotiation
~~~~~~~~~~~~~~~~~~~
- Mimetype -> Serializer
- Versioning via mimetypes
Workflow
~~~~~~~~
Preprocess into same format (database vs ES)
Transform record
Serialize data format
Data formats
~~~~~~~~~~~~~~~~~~~~
- JSON: JSON-LD, CSL
- XML: DataCite, DublinCore, MARCXML
- Text: Citation formatting
Transformations
~~~~~~~~~~~~~~~
- JSON-JSON: Marshmallow
Citation formatting
~~~~~~~~~~~~~~~~~~~
Example:
transform to
Tombstones and redirection
--------------------------
error handlers
Access control
--------------
Principles
- search filtering
- factories
impact of es query parser and hidden fields
Factories
~~~~~~~~~
Deserialization
---------------
Create, Update, Delete support
- Loaders
- Minters/Fetchers
Metadata
Assignees
Labels
No labels
Activity