• カナダ最大の車のマーケットプレース• 画像データ•
•• 地理的 ディーラー
•
•
•
より頻繁に検索https://customers.microsoft.com/Pages/CustomerStory.aspx?recid=18596
「モバイルアプリで、もっと売れると
思ったんですよねぇ」
「欲しいものは、
なんか違うのよね」
“AdventureWorks Cycle Shop”
車種 型番 色 価格 画像URL
マウンテン MS-01 赤 10万 http://xxx/a01.png
マウンテン MS-02 青 8万 http://xxx/b01.png
「スマホでの入力は大変ね」 ”文字入力” ”アクション”
入力候補
絞り込み
あいまい検索
●●
● ●
●●
●
●
“AdventureWorks Cycle Shop”
車種 型番 色 価格 画像URL
マウンテン MS-01 赤 10万 http://xxx/a01.png
マウンテン MS-02 青 8万 http://xxx/b01.png「運動したくて、
自転車はどうかなって」
運動
“AdventureWorks Cycle Shop”
車種 型番 色 価格 画像URL
マウンテン MS-01 赤 10万 http://xxx/a01.png
マウンテン MS-02 青 8万 http://xxx/b01.png
“Azure Sports Store”
カテゴリ 商品名 価格 画像URL
ランニング Azureシューズ 1万円 http://yyy/as01.png
フィットネス Cloudワンダー 2万円 http://xxxx/fc04.png
“AdventureWorks Work-Out Services”
車種 型番 色 価格 画像URL
マウンテン MS-01 赤 10万 http://xxx/a01.png
マウンテン MS-02 青 8万 http://xxx/b01.png
“Azure Sports Store”
カテゴリ 商品名 価格 画像URL
ランニング Azureシューズ 1万円 http://yyy/as01.png
フィットネス Cloudワンダー 2万円 http://xxxx/fc04.png
Search
大カテゴリ 中カテゴリ 商品名 価格 画像URL Blogタイトル
自転車 マウンテン MS-01 10万 http://xxx/a01.png {ランとバイクの相乗効果…}
自転車 マウンテン MS-02 8万 http://xxx/b01.png {富士山からの… , 2時間で..}
ランニング “シューズ” Azureシューズ 1万円 http://yyy/as01.png {ランとサイクリングの…}
フィットネス “筋トレ” Cloudワンダー 2万円 http://yyy/fc04.png サイクリングで鍛えられな
Work-OutDataIndex
サービス用のデータ構造
Oracle CouchDBDB2Postgres MongoDBCassandra
RavenDBMySQLSQL DB RedisDocumentDB
Relational No-SQL
Azure Search
商品購入、
レビュー書き込み
商品カタログ更新
DocumentDB
SQL Database
Azure Search
Azure Table
AdventureWorks
Azurewebsites.net
商品カタログ、レビュー、レーティング
購買
商品カタログ検索
ショッピングカート
販売チャネルを増やす事も考えないとね
“AdventureWorks Work-Out Services”
Search
圧倒的なスケーラビリティ
「参照」と「更新」の分離
• データ分割とレプリケーション
高度なデータ管理
• インデックス管理など
Search
参照前提のシステム
• “カラム”: 負荷分散、冗長性
• “ロウ”: データ量
シンプルな管理
• データ更新のスケジュール
• クエリー処理/秒でのスケールアウト
検索エンジンのインフラを構築できますか?
絞り込み用データなど補足情報の迅速な提供
各国語処理
開発者 インフラを構築せず検索の Experience
組み込む
高いパフォーマンス
洗練された検索結果
ビジネスの重要度に応じた調整
素早い市場展開
エンタープライズグレード
スケールアウト
データ“サーフェース”
Azure Search
IndexFacetsSuggestion
.png
moreLikeThis
https://msdn.microsoft.com/en-us/library/azure/dn798935.aspx
http://azure.microsoft.com/ja-jp/documentation/articles/search-get-started-dotnet/ https://msdn.microsoft.com/en-us/library/azure/dn951165.aspx
https://msdn.microsoft.com/en-us/library/azure/dn832684.aspx
http://azure.microsoft.com/ja-jp/documentation/articles/search-get-started-java/
http://azure.microsoft.com/ja-jp/documentation/articles/search-get-started-nodejs/
http://azure.microsoft.com/ja-jp/documentation/articles/search-workflow/
Azure Search
Index
SQL Server /
SQL Database
Admin Key 管理
Query Key 検索 DocumentDB
http://azure.microsoft.com/ja-jp/regions/#services
http://azure.microsoft.com/ja-jp/documentation/articles/search-create-service-portal/
•処理能力と冗長性での設定• ユーザー数:
• 検索処理: Query per Sec
• 記憶域• Document保持数 / Upload per Sec
オブジェクト 無料 (共有) 標準 (占有)
インデックスの最大数 3 Search サービスあたり 50
インデックスごとのフィールドの最大数 1,000 1,000
ドキュメントの最大数 10,000 パーティションごとに 1,500 万
ストレージの最大サイズ 50 MB パーティションごとに 25 GB
最大パーティション 該当なし Search サービスあたり 12
最大レプリカ数 該当なし Search サービスあたり 6
検索単位の最大数 該当なし Search サービスあたり 36
インデクサーの最大数 3 Search サービスあたり 10
データソースの最大数 3 Search サービスあたり 10
1 つのインデクサー呼び出しでインデックスを作成できるドキュメントの最大数
10,000 無制限
https://msdn.microsoft.com/library/azure/dn798934.aspx
プロビジョニング
Search RDB
Index Index
Document Row
Field Column
Crawling (“indexing”) Data Import
≒
http://azure.microsoft.com/ja-jp/documentation/articles/search-create-index-portal/
https://msdn.microsoft.com/library/azure/dn798941.aspx/
属性 説明
検索可能 (searchable) 全文検索可能に。インデックス作成時にワードブレイクや言語分析をする
取得可能 (retrievable) フィールドを検索結果に含めるか
フィルター可能
(filterable)
$filter クエリで参照するか。完全一致のみとなる。True / false など。
ソート可能 (sortable) 既定のランキングアルゴリズム以外で、並び替えができるようにするか
ファセット可能
(facetable)
ファセット (カテゴリー別のヒット数を含む検索結果)
で使用するか
キー (key) 一意の識別子
プロビジョニング
インデックス作成
https://msdn.microsoft.com/ja-jp/library/azure/dn798930.aspx
プロビジョニング
インデックス作成
インデッキシング
Azure Search
IndexFacetsSuggestion moreLikeThis
var searchClient = new SearchServiceClient(searchServiceName, newSearchCredentials(apiKey));var indexClient = searchClient.Indexes.GetClient("decode2015sessions");
SearchParameters sp = new SearchParameters() {SearchMode = SearchMode.All,Facets = {"track","speaker"},HighlightPreTag ="<b>",HighlightPostTag ="</b>",HighlightFields = {"title","overview"},Top = 10,IncludeTotalResultCount = true
};var searchResult = indexClient.Documents.Search(searchText, sp);return searchResult;
$filter=geo.distance(location, geography'POINT(-122.131577 47.678581)') le 10
$filter=geo.intersects(location, geography'POLYGON((-122.031577 47.578581, -122.031577 47.678581, -122.131577 47.678581, -122.031577 47.578581))')
https://msdn.microsoft.com/library/azure/dn798921.aspx/
hellobonjour
guten tag
jó napot
buon giorno
salveolázdravstvuyte
holagod dag
merhaba
こんにちは
안녕하세요
Grüßgott
xin chào
hellobonjour
guten tag
jó napot
buon giorno
salveolázdravstvuyte
holagod dag
merhaba
こんにちは
안녕하세요
Grüßgott
xin chào
“東京都ルパン上映時間”
“東京都”
“ルパン”
“上映”
“時間”
“東京都ルパン上映時間”
“東京”
“京都”
“都 ”
“ ル”
・・・
単語から語尾を切り離し語幹(Stem)に統一
• engineering, engineers, engineered →
engineer• car, cars, car’s, cars’ → car• コンピューター → コンピュータ• コーナー → コーナ
正規化(Normalization)
単語を一定ルールで変形。表記の揺れも
• U.S.A → USA
• Co-education → coeducation• 半角カタカナ→ 全角カタカナ• カタカナ→ ひらがな
• Alphabētikós Katálogos →
Alphabetikos Katalogos #Non Spacing
mark
• 簡化字 → 简化字
UNICODE テキストセグメント化
hellobonjour
guten tag
jó napot
buon giorno
salveolázdravstvuyte
holagod dag
merhaba
こんにちは
안녕하세요
Grüßgott
xin chào
https://msdn.microsoft.com/ja-jp/library/azure/dn879793.aspx
プロビジョニング
インデックス作成
インデッキシング
検索
数値化
属性 説明
magnitude 数値フィールドの値に基づく。星評価、クリック数など
freshness DateTimeOffsetフィールドの値に基づく
distance 地理的情報に基づく
線形 (Linear) 一定の減少量で。既定の補間
定数
(Constant)一定の値
二次式
(Quadratic)
最初は遅いペースで低下し、範囲の終わり近づくにつれて低下するペースが速く
Log10
(Logarithmic )
最初は速いペースで低下し、範囲の終わり近づくにつれて低下するペースが遅く
https://msdn.microsoft.com/library/azure/dn798928.aspx/
Azure Search
Recall Lemmatization
Synonym Expansion
Wildcards
Anti-phrasing
Phonetic Search
PrecisionExact Word Matching
Exact Phrase Matching
Proximity
Improvement
through linguistics
検索ヒット数↑
検索ノイズ ↑
検索精度 ↑
検索漏れ ↑
SQL Database DocumentDB Search Tables HDInsight
Azure Search 製品サイト http://azure.microsoft.com/en-
us/documentation/services/search/
http://azure.microsoft.com/ja-jp/documentation/articles/fundamentals-azure-search-chappell/
Azure Search シナリオと機能 http://blogs.msdn.com/b/windowsazurej/archive/2014/09/16/
blog-azure-search-scenarios-and-capabilities.aspx
Azure Search 最初の一歩 .NET http://azure.microsoft.com/ja-
jp/documentation/articles/search-get-started-dotnet/
API ドキュメント https://msdn.microsoft.com/library/azure/
dn798933.aspx
評価のためのご参考資料