Skip to main content

Python package for searching and indexing

Project description

A Python indexing and searching system.

See http://github.com/Pylons/hypatia for more information while this package is in alpha development.

0.1a4 (2013-04-28)

  • Add IResultSet interface definition.

  • Normalize keyword argument ordering of IIndexSort.sort and IResultSet.sort.

  • Add an argument raise_unsortable to IIndexSort.sort and IResultSet.sort methods. By default this is True. It means that iterating over the results returned by one of these methods may raise a hypatia.exc.Unsortable exception when a member of the docids passed in cannot be sorted by the index used to do the sort (e.g. a value for the docid is not present in the index). It defaults to True, which changes the default behavior of indexes. To get the old default behavior back, pass False for this value. Alternately, write code like this:

    from hypatia.exc import Unsortable
    
    ids = []
    results = resultset.sort(someindex)
    try:
        for id in results:
            ids.append(id)
    except Unsortable as e:
        unsorted = e.docids
        ids.extend(unsorted)

0.1a3 (2013-01-10)

  • Optimize index_doc implementations of field and keyword index in cases where the discriminator returns the default.

  • Remove code from hypatia.path. This package no longer supports PathIndex.

  • Remove interfaces.IIndexQuery interface. It was never relevant, as indices cannot be expected to implement all of its methods, only the ones which apply to each index.

  • BaseIndexMixin no longer supplies default implementation of applyFoo methods which raise NotImplementedError. Each index is now responsible for implementing all of its own applyFoo methods. This is in the interest of fidelity with new query methods such as eq, which are similarly not implemented in the base.

  • Indexes are now compelled to implement a qname method for use by queries.

  • DoesNotContain query renamed to NotContains for symmetry with other negated query names.

  • New index methods: eq, noteq, ge, le, lt, gt, any, notany, all, notall, inrange, notinrange, contains, notcontains. These methods return query objects. Ex:

    catalog['flavors'].eq('peach')
  • Query objects refactored internally to deal in index objects rather than index names.

  • The query.parse_query function now requires a catalog argument.

  • Query objects now supply an .execute method which returns a ResultSet.

  • ResultSet objects are returned from .execute. They represent a set of docids; they are iterable and have various methods for obtaining single objects (like one, first) and sorting (sort).

  • All Query objects now have a flush method which accepts arbitrary positional and keyword arguments. Calling the flush method of a query object will cause the flush method of all indexes participating in the query with the value passed to Query.flush with the same positional and keyword arguments. This is to support Substance D upstream, which may require indexes to be flushed before a query happens.

  • Add a document_repr method to all indexes which accepts a docid and returns a string represnting the index’s knowledge about that docid.

0.1a2 (2012-07-02)

  • This version of the code is incompatible with indexes produced by 0.1a1. There is no upgrade script. Shame on you for using software with a 0.1a1 version number and expecting backwards compatibility.

  • Add hypatia.catalog.CatalogQuery.sort API for sorting external sets of docids based on index values.

  • Add IIndexEnumeration interface, which all indexes must support. This implied the following backwards incompatibilities:

    • New interface methods: docids, docids_count, indexed, indexed_count, not_indexed and not_indexed_count.

    • documentCount method renamed to indexed_count.

    • wordCount method renamed to word_count.

  • Remove unused INBest interface.

  • IIndexInjection interface clear method renamed to reset to prevent confusion with dictionary clear (catalog is often dictionarylike). Catalog clear_indexes method replaced with reset.

0.1a1

  • Initial release: fork of repoze.catalog and zope.index, combined.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hypatia-0.1a4.tar.gz (132.2 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page