-
-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathaliases.rb
56 lines (45 loc) · 1.7 KB
/
aliases.rb
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