Code Monkey home page Code Monkey logo

inversedb's Introduction

InverseDB

Column oriented storage for python.

Install

sudo pip install intbitset

Example

# Document are dictionnaries
andre = {'age': 37, 'sexe': True, 'location': 'Paris'}
berenice = {'age': 27, 'sexe': False, 'location': 'Paris'}

idx = MemoryIndex()
idx.add_document(andre)
idx.add_document(berenice)

# It's an index, I can find by key
in_paris = idx.find('location', 'Paris')
male = idx.find('sexe', True)

# Results are set, wich handle binary operation
male_in_paris = in_paris & male

# Search can be more dynamic
def more_than(x):
    return int(x) > 27 #key is a string
idx.find('age', more_than)

# JSON like query syntax
# the sum of age of all men :
q = query.query(self.idx, {
    'sum':['age', {
        'equal': ['sexe', True]
        }]
    })

Technical implementation

InverseDb is a pedagogical projet. It try to show how inversed index works and RDBMS are not "one size fits all" tools. Inversedb use the same inversed pattern of Lucene.

Persistance is done with simple key-value storage. For now, ram and gdbm storage are provided, and soon KyotoCabinet and LevelDB.

InverseDb actions are easy to parralelized, and will fit well with multicore and multiserver architecture.

Licence

MIT ©Mathieu Lecarme 2012

inversedb's People

Contributors

athoune avatar

Stargazers

 avatar Mr.Fang avatar  avatar @aifsair avatar  avatar Alberto Paro avatar

Watchers

 avatar James Cloos avatar

Forkers

pombredanne

inversedb's Issues

Security Policy violation SECURITY.md

This issue was automatically created by Allstar.

Security Policy Violation
Security policy not enabled.
A SECURITY.md file can give users information about what constitutes a vulnerability and how to report one securely so that information about a bug is not publicly visible. Examples of secure reporting methods include using an issue tracker with private issue support, or encrypted email with a published key.

To fix this, add a SECURITY.md file that explains how to handle vulnerabilities found in your repository. Go to https://github.com/athoune/InverseDB/security/policy to enable.

For more information, see https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository.


This issue will auto resolve when the policy is in compliance.

Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.