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:
- 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)
- 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
- 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)
- 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
Release history Release notifications | RSS feed
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)
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72f3c2c5f0cf6ff186583e93c98fa4c694871d050d6c336c002b73bad01a497a |
|
MD5 | 6d433edf6763942bf9e95aa86d24b613 |
|
BLAKE2b-256 | db4efc41addc4acb5e816bbc156cdcbb83e79f4367617e42f0a2dc91a4e62455 |
File details
Details for the file toshi_client-0.0.1-py3-none-any.whl
.
File metadata
- Download URL: toshi_client-0.0.1-py3-none-any.whl
- Upload date:
- Size: 13.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1cba6c4e24bdf82d331688a0146fcc6099936226c801a8bb609967e2d8ce765 |
|
MD5 | fd5db821fd6d2b60f8fdb68b48e9167e |
|
BLAKE2b-256 | c9a19f8a9714b1c28f561883ba027b8ea37e5dfecda79cc74538183db35b5460 |