-
-
Notifications
You must be signed in to change notification settings - Fork 38
/
Copy pathalias_operations.py
67 lines (49 loc) · 1.62 KB
/
alias_operations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import typesense
client = typesense.Client({
'api_key': 'abcd',
'nodes': [{
'host': 'localhost',
'port': '8108',
'protocol': 'http'
}],
'connection_timeout_seconds': 2
})
# Create a collection
create_response = client.collections.create({
"name": "books_january",
"fields": [
{"name": "title", "type": "string" },
{"name": "authors", "type": "string[]", "facet": True },
{"name": "publication_year", "type": "int32", "facet": True },
{"name": "ratings_count", "type": "int32" },
{"name": "average_rating", "type": "float" },
{"name": "image_url", "type": "string" }
],
"default_sorting_field": "ratings_count"
})
print(create_response)
# Create or update an existing alias
create_alias_response = client.aliases.upsert('books_link', {
"collection_name": "books_january"
})
print(create_alias_response)
# Add a book using the alias name `books`
hunger_games_book = {
'id': '1', 'original_publication_year': 2008, 'authors': ['Suzanne Collins'], 'average_rating': 4.34,
'publication_year': 2008, 'title': 'The Hunger Games',
'image_url': 'https://images.gr-assets.com/books/1447303603m/2767052.jpg',
'ratings_count': 4780653
}
client.collections['books_link'].documents.create(hunger_games_book)
# Search using the alias
print(client.collections['books_link'].documents.search({
'q': 'hunger',
'query_by': 'title',
'sort_by': 'ratings_count:desc'
}))
# List all aliases
print(client.aliases.retrieve())
# Retrieve the configuration of a specific alias
print(client.aliases['books_link'].retrieve())
# Delete an alias
print(client.aliases['books_link'].delete())