aso

asonic

async python client for the sonic search backend

Showing:

Popularity

Downloads/wk

0

GitHub Stars

117

Maintenance

Last Commit

2yrs ago

Contributors

7

Package

Dependencies

0

License

MPL-2.0

Categories

Readme

asonic - async python client for the sonic search backend

Asonic implements all Sonic APIs
Bugfixes and api changes are welcome

Install

pip install asonic

API Docs

here

Usage

Search channel

import asyncio

from asonic import Client
from asonic.enums import Channel


async def main():
  c = Client(host='127.0.0.1', port=1491, password='SecretPassword', max_connections=100)
  await c.channel(Channel.SEARCH)
  assert (await c.query('collection', 'bucket', 'quick')) == [b'user_id']
  assert (await c.suggest('collection', 'bucket', 'br', 1)) == [b'brown']

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

Ingest channel

import asyncio

from asonic import Client
from asonic.enums import Channel


async def main():
  c = Client(host='127.0.0.1', port=1491)
  await c.channel(Channel.INGEST)
  await c.push('collection', 'bucket', 'user_id', 'The quick brown fox jumps over the lazy dog')
  # Return b'OK'
  await c.pop('collection', 'bucket', 'user_id', 'The')
  # Return 1

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

Control channel

import asyncio

from asonic import Client
from asonic.enums import Channel, Action


async def main():
  c = Client(host='127.0.0.1', port=1491)
  await c.channel(Channel.CONTROL)
  await c.trigger(Action.CONSOLIDATE)
  # Return b'OK'

if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial