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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|