Repository navigation
Expand file tree
/
Copy pathaliases.rb
More file actions
56 lines (45 loc) · 1.77 KB
/
Copy pathaliases.rb
File metadata and controls
56 lines (45 loc) · 1.77 KB
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
# frozen_string_literal: true
##
# These examples walk you through operations specifically related to aliases
require_relative './client_initialization'
# Create a collection
create_response = @typesense.collections.create(
"name": 'books_january',
"fields": [
{ "name": 'title', "type": 'string' },
{ "name": 'authors', "type": 'string[]' },
{ "name": 'authors_facet', "type": 'string[]', "facet": true },
{ "name": 'publication_year', "type": 'int32' },
{ "name": 'publication_year_facet', "type": 'string', "facet": true },
{ "name": 'ratings_count', "type": 'int32' },
{ "name": 'average_rating', "type": 'float' },
{ "name": 'image_url', "type": 'string' }
],
"default_sorting_field": 'ratings_count'
)
ap create_response
# Create or update an existing alias
create_alias_response = @typesense.aliases.upsert('books',
"collection_name": 'books_january')
ap 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, 'publication_year_facet': '2008', 'authors_facet': ['Suzanne Collins'],
'title': 'The Hunger Games',
'image_url': 'https://images.gr-assets.com/books/1447303603m/2767052.jpg',
'ratings_count': 4_780_653
}
@typesense.collections['books'].documents.create(hunger_games_book)
# Search using the alias
ap @typesense.collections['books'].documents.search(
'q': 'hunger',
'query_by': 'title',
'sort_by': 'ratings_count:desc'
)
# List all aliases
ap @typesense.aliases.retrieve
# Retrieve the configuration of a specific alias
ap @typesense.aliases['books'].retrieve
# Delete an alias
ap @typesense.aliases['books'].delete