Skip to main content

Python client for the Full-Text Search Engine Toshi

Project description

Toshi Python Client

This repository is a client for the Full-Text Search Engine Toshi. It allows you to use all features implemented in the Toshi engine.

How to install

The client is available as a package on Pypi and can be installed via:

pip install toshi_client

Examples

For a full set of examples check out the integration tests.

Here is a basic example:

  1. Create an index and submit it
from toshi_client.client import ToshiClient
from toshi_client.index.index_builder import IndexBuilder
from toshi_client.index.field_options import TextOptionIndexing

builder = IndexBuilder()

builder.add_text_field(name="lyrics", stored=True, indexing=TextOptionIndexing())
builder.add_i64_field(name="year", stored=True, indexed=True)
builder.add_u64_field(name="idx", stored=True, indexed=True)
builder.add_text_field(name="artist", stored=True, indexing=TextOptionIndexing())
builder.add_text_field(name="genre", stored=True, indexing=TextOptionIndexing())
builder.add_text_field(name="song", stored=True, indexing=TextOptionIndexing())
builder.add_facet_field(name="test_facet", stored=True)

index = builder.build("lyrics")
    
client = ToshiClient("http://localhost:8080")
client.create_index(index=index)
  1. Create a document class according to the just created index
from toshi_client.models.document import Document

class Lyrics(Document):
    @staticmethod
    def index_name() -> str:
        return "lyrics"

    def __init__(
        self,
        lyrics: str,
        year: int,
        idx: int,
        artist: str,
        genre: str,
        song: str,
    ):
        self.lyrics = lyrics
        self.year = year
        self.idx = idx
        self.artist = artist
        self.genre = genre
        self.song = song
  1. Submit a document to Toshi
doc = Lyrics(
    lyrics="Gold on the ceiling, I ain't blind, just a matter of time",
    year=2011,
    idx=2,
    artist="The Black Keys",
    genre="Rock",
    song="Gold on the Ceiling",
    test_facet="/a/b",
)
client.add_document(document=doc)
  1. Use a query of your choice to retrieve it
from toshi_client.query.term_query import TermQuery

query = TermQuery(term="ceiling", field_name="lyrics")
documents = client.search(query, Lyrics)

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

toshi_client-0.0.1.tar.gz (36.1 kB view details)

Uploaded Source

Built Distribution

toshi_client-0.0.1-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file toshi_client-0.0.1.tar.gz.

File metadata

  • Download URL: toshi_client-0.0.1.tar.gz
  • Upload date:
  • Size: 36.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.0

File hashes

Hashes for toshi_client-0.0.1.tar.gz
Algorithm Hash digest
SHA256 72f3c2c5f0cf6ff186583e93c98fa4c694871d050d6c336c002b73bad01a497a
MD5 6d433edf6763942bf9e95aa86d24b613
BLAKE2b-256 db4efc41addc4acb5e816bbc156cdcbb83e79f4367617e42f0a2dc91a4e62455

See more details on using hashes here.

File details

Details for the file toshi_client-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for toshi_client-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d1cba6c4e24bdf82d331688a0146fcc6099936226c801a8bb609967e2d8ce765
MD5 fd5db821fd6d2b60f8fdb68b48e9167e
BLAKE2b-256 c9a19f8a9714b1c28f561883ba027b8ea37e5dfecda79cc74538183db35b5460

See more details on using hashes here.

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