31
& CloudSearch Fumikazu Kiyota Vuzz Inc. 2014/05/15 @AWS Meguro

SnapDish&CloudSearch@aws

Embed Size (px)

DESCRIPTION

SnapDish の CloudSearch の利用方法。 インデックスのアップデートの仕組みついて少し説明している

Citation preview

Page 1: SnapDish&CloudSearch@aws

& CloudSearchFumikazu Kiyota Vuzz Inc. 2014/05/15 @AWS Meguro

Page 2: SnapDish&CloudSearch@aws

Index• Self-introduction

• About SnapDish

• Why CloudSearch?

• How we use CloudSearch

• Summary

Page 3: SnapDish&CloudSearch@aws

[self print]★Working for Vuzz Inc.

★ Language Objective-C, Python, Japanese, English

★Member of PyCon JP 2014

★@kiyotaman - twitter

★ Everyday Zazen(meditating) in the morning.

★ 4 years experience in AWS

Page 4: SnapDish&CloudSearch@aws

SnapDish?SnapDish って?

Page 5: SnapDish&CloudSearch@aws
Page 6: SnapDish&CloudSearch@aws
Page 7: SnapDish&CloudSearch@aws

Our mission

Page 8: SnapDish&CloudSearch@aws

Help people cooking everyday!

Page 9: SnapDish&CloudSearch@aws

at SnapDish

Page 10: SnapDish&CloudSearch@aws

Share

Page 11: SnapDish&CloudSearch@aws

Communicate

Page 12: SnapDish&CloudSearch@aws

Find Friends

Page 13: SnapDish&CloudSearch@aws

in Common

Page 14: SnapDish&CloudSearch@aws

Enjoy Cooking!

Image Source: http://www.cancook.co.uk/wp-content/uploads/2010/06/cancookschools.jpg

Page 15: SnapDish&CloudSearch@aws

Why CloudSearch?

Page 16: SnapDish&CloudSearch@aws

Simple & Easy Installation Powerful & Reliable Service

Reasonable & Affordable Price

Page 17: SnapDish&CloudSearch@aws

How we use CloudSearch.

Page 18: SnapDish&CloudSearch@aws
Page 19: SnapDish&CloudSearch@aws

Search users & dishes

Page 20: SnapDish&CloudSearch@aws

User search fields• Full name - multilingual text ex. アマゾン 太郎

• Account name - Alphabet text ex. AmazonTarou

• Bio - multilingual text ex. お寿司とラーメン大好き❤(Love sushi and ramen)

Page 21: SnapDish&CloudSearch@aws

Search query

/2013-01-01/search?q=(or (prefix field=screen_name '寿司') name:'寿司' bio:'寿司')&start=0&q.options={"fields": ["screen_name^10", "name^5", "bio"]}&q.parser=structured&size=300

Page 22: SnapDish&CloudSearch@aws

When update index

・Create a user profile

!

・Update a user profile

!

・Delete a user profile

Page 23: SnapDish&CloudSearch@aws

Job Queue

App Server (Cached)

Job Queue CloudSearch

Client

Enqueue

Add, Delete, Update

DB

Page 24: SnapDish&CloudSearch@aws

Dish search fields (using old version)

• Tokenize - Tokenized text ex. 寿司 すし スシ お寿司 大好き※ Still using old API…

Page 25: SnapDish&CloudSearch@aws

Search query

/2011-02-01/search?rank=-text_relevance&facet=homemade,recipe,cookedit,ingredients&start=0&return-fields=userid&size=300&bq=(and tokenize:'+すし*' (not recipe:"1"))

Page 26: SnapDish&CloudSearch@aws

When update index・Create a dish detail

・User action on a dish detail Yummy(Like), Comment, Resnap(Retweet), View, etc..

・Delete dish detail

Page 27: SnapDish&CloudSearch@aws

App Server (Cached)

SQS

Batch Worker Server

Tokenize

CloudSearch

ClientSQS

Add, Delete, Update within 5MB

(Batch Size Limitation)

Enqueue

DB

http://docs.aws.amazon.com/cloudsearch/latest/developerguide/limits.html

Page 28: SnapDish&CloudSearch@aws

2011-02-11 to 2013-01-01

• Migration Task

• Indexing options

• Analysis Scheme

• Sort Expression

• Batch worker

• Search query

• Tokenise

Page 29: SnapDish&CloudSearch@aws

Summary• SnapDish is for foodies

• Two ways to update index (SQS & Batch Recommended)

• Own dictionary gives you better search result

Page 30: SnapDish&CloudSearch@aws

Thank you m(_ _)m

Page 31: SnapDish&CloudSearch@aws

https://pycon.jp/2014/

Waiting for your!PyCon JP 2014 Sponsorship and CfP!