The pyreindexer module provides a connector and its auxiliary tools for interaction with Reindexer.
RxConnector(self, dsn)
RxConnector provides a binding to Reindexer upon two shared libraries (hereinafter - APIs): 'rawpyreindexerb.so' and 'rawpyreindexerc.so'. The first one is aimed to a builtin way usage. That API embeds Reindexer so it could be used right in-place as is. The second one acts as a lightweight client which establishes a connection to Reindexer server via RPC. The APIs interfaces are completely the same.
Attributes:
api (module): An API module loaded dynamically for Reindexer calls
rx (int): A memory pointer to Reindexer instance
err_code (int): the API error code
err_msg (string): the API error message
RxConnector.close(self)
Closes an API instance with Reindexer resources freeing
Returns:
None
RxConnector.namespace_open(self, namespace)
Opens a namespace specified or creates a namespace if it does not exist
Arguments:
namespace (string): A name of a namespace
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.namespace_close(self, namespace)
Closes a namespace specified
Arguments:
namespace (string): A name of a namespace
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.namespace_drop(self, namespace)
Drops a namespace specified
Arguments:
namespace (string): A name of a namespace
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.namespaces_enum(self, enum_not_opened=False)
Gets a list of namespaces available
Arguments:
enum_not_opened (bool, optional): An enumeration mode flag. If it is
set then closed namespaces are in result list too. Defaults to False.
Returns:
(:obj:`list` of :obj:`dict`): A list of dictionaries which describe each namespace.
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.index_add(self, namespace, index_def)
Adds an index to the namespace specified
Arguments:
namespace (string): A name of a namespace
index_def (dict): A dictionary of index definiton
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.index_update(self, namespace, index_def)
Updates an index in the namespace specified
Arguments:
namespace (string): A name of a namespace
index_def (dict): A dictionary of index definiton
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.index_drop(self, namespace, index_name)
Drops an index from the namespace specified
Arguments:
namespace (string): A name of a namespace
index_name (string): A name of an index
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.item_insert(self, namespace, item_def, precepts=[])
Inserts an item with its precepts to the namespace specified.
Arguments:
namespace (string): A name of a namespace
item_def (dict): A dictionary of item definiton
precepts (:obj:`list` of :obj:`str`): A dictionary of index definiton
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.item_update(self, namespace, item_def, precepts=[])
Updates an item with its precepts in the namespace specified.
Arguments:
namespace (string): A name of a namespace
item_def (dict): A dictionary of item definiton
precepts (:obj:`list` of :obj:`str`): A dictionary of index definiton
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.item_upsert(self, namespace, item_def, precepts=[])
Updates an item with its precepts in the namespace specified. Creates the item if it not exist.
Arguments:
namespace (string): A name of a namespace
item_def (dict): A dictionary of item definiton
precepts (:obj:`list` of :obj:`str`): A dictionary of index definiton
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.item_delete(self, namespace, item_def)
Deletes an item from the namespace specified.
Arguments:
namespace (string): A name of a namespace
item_def (dict): A dictionary of item definiton
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.meta_put(self, namespace, key, value)
Puts metadata to a storage of Reindexer by key
Arguments:
namespace (string): A name of a namespace
key (string): A key in a storage of Reindexer for metadata keeping
value (string): A metadata for storage
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.meta_get(self, namespace, key)
Gets metadata from a storage of Reindexer by key specified
Arguments:
namespace (string): A name of a namespace
key (string): A key in a storage of Reindexer where metadata is kept
Returns:
string: A metadata value
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.meta_delete(self, namespace, key)
Deletes metadata from a storage of Reindexer by key specified
Arguments:
namespace (string): A name of a namespace
key (string): A key in a storage of Reindexer where metadata is kept
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.meta_enum(self, namespace)
Gets a list of metadata keys from a storage of Reindexer
Arguments:
namespace (string): A name of a namespace
Returns:
(:obj:`list` of :obj:`str`): A list of all metadata keys.
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
RxConnector.select(self, query)
Executes an SQL query and returns query results
Arguments:
query (string): An SQL query
Returns:
(:obj:`QueryResults`): A QueryResults iterator.
Raises:
Exception: Raises with an error message of API return if Reindexer instance is not initialized yet.
Exception: Raises with an error message of API return on non-zero error code.
QueryResults(self, api, qres_wrapper_ptr, qres_iter_count)
QueryResults is a disposable iterator of Reindexer results for such queries as SELECT and etc. When the results are fetched the iterator closes and frees a memory of results buffer of Reindexer
Attributes:
api (module): An API module for Reindexer calls
err_code (int): the API error code
err_msg (string): the API error message
qres_wrapper_ptr (int): A memory pointer to Reindexer iterator object
qres_iter_count (int): A count of results for iterations
pos (int): The current result position in iterator
QueryResults.count(self)
Returns a count of results
Returns
int
: A count of results
IndexDefinition(self, /, *args, **kwargs)
IndexDefinition is a dictionary subclass which allows to construct and manage indexes more efficiently. NOT IMPLEMENTED YET. USE FIELDS DESCRIPTION ONLY.
Arguments:
name (str): An index name.
json_paths (:obj:`list` of :obj:`str`): A name for mapping a value to a json field.
field_type (str): A type of a field. Possible values are: `int`, `int64`, `double`, `string`, `bool`, `composite`.
index_type (str): An index type. Possible values are: `hash`, `tree`, `text`, `-`.
is_pk (bool): True if a field is a primary key.
is_array (bool): True if an index is an array.
is_dense (bool): True if an index is dense. reduce index size. Saves 8 bytes per unique key value for 'hash' and 'tree' index types.
For '-' index type saves 4-8 bytes per each element. Useful for indexes with high selectivity, but for tree and hash indexes with low selectivity could
significantly decrease update performance.
is_sparse (bool): True if a value of an index may be not presented.
collate_mode (str): Sets an order of values by collate mode. Possible values are: `none`, `ascii`, `utf8`, `numeric`, `custom`.
sort_order_letters (str): Order for a sort sequence for a custom collate mode.
config (dict): A config for a fulltext engine. [More](https://github.com/Restream/reindexer/blob/master/fulltext.md) .