SlideShare a Scribd company logo
1 of 47
Azure サービスを活用して作る
フルマネージドな全文検索アプリケーション
Yoichi Kawasaki
Azure Technology Solution Professional
Asia Global Black Belt
Slides for Azure Webinar: Azure Search
アジェンダ
• 導入編
• Azure Search概要
• Azureを活用した検索サービス事例
• 実践編
• アプリケーション開発
• モニタリング・分析
• Q&A
Azureサービスを使った検索サービス構築
Azure Search
• 強力かつ豊富な検索機能をシンプルなプロトコル
とAPIで提供
• 完全マネージドでスケーラブル
• 充実した自然言語解析、ランキング調整機能
検索の専門的な知識不要で容易にリッチ検索アプリの構築を可能と
し、また完全マネージドで運用管理コストも削減することができる
→ アプリ/サービス開発に集中できる
全文検索機能を提供するSearch-as-a-Service (PaaS)
検索エクスペリエンス
地理空間検索
全てAzure Searchの機能で実現しています
http://azjobsdemo.azurewebsites.net/
シンプルなAPIとフォーマット
インデックス追加・更新 /indexes/<indexname> PUT
インデックス一覧表示 /indexes GET
インデックス統計情報取
得
/indexes/<indexname>/stats GET
インデックスの削除 /indexes/<indexname> DELETE
ドキュメント追加・削除 /indexes/<indexname>/docs/index POST
検索 /indexes/<indexname>/docs GET
ドキュメントlookup /indexes/<indexname>/docs/<key> GET
ドキュメント数取得 /indexes/<indexname>/docs/$count GET
サジェスション /indexes/<indexname>/docs/suggest GET
テストアナライザ /indexes/<indexname>/analyze POST
https://<アカウント名>.search.windows.net
{
"@odata.context":
"https://yoichikademo.search.windows.net/
indexes('messages')/$metadata#Collection(
Microsoft.Azure.Search.V2016_09_01.IndexR
esult)",
"value": [
{ "errorMessage": null, "key": "1",
"status": true, "statusCode": 201 },
{ "errorMessage": null, "key": "2",
"status": true, "statusCode": 201 },
{ "errorMessage": null, "key": "3",
"status": true, "statusCode": 201 }
]
}
※ APIバージョン 2016-09-21の機能一覧。バージョンごとの機能についてはこちらを参照ください
Azure Search アーキテクチャ全図
QueryParser Search
Engine
Analyzer
IndexWriter
インデックスSimple lucene
Analyzed
terms
Query
terms
Query
tree
Query
text
Documents
terms
Analyzed
terms
Retrieve Ingest
Analyzer
検索処理
• クエリーを元に
トークン引き当て
• ランキング処理
クエリ文を解析し内部
クエリ―形式に変換
テキスト解析を行いトークンの
展開、変換、削除などを行う
転置インデックス
インデックス生成処理
2種類のインデックス更新方式
IndexWriter
Indexer REST API
インデクサーによる定期更新
• インデクサーの定期的実行による更新: 最小5分
• 変更、削除検知し差分実行
• データソースのフルクロール可
インデクシングAPIで直接更新
• POST: /indexes/<name>/docs/index
• アップロード 、マージ、削除など
• 1度のバッチ: 最大 1,000 ドキュメント
• リアルタイムに近いデータ更新
スケーラビリティ - 検索・データ
1 ~ 12
1 ~ 12
オンラインでスケール設定可能
APIやポータルからオンラインでスケール設定変更が可能
パーティション
レプリカ
多様な検索対象データ
 データソース
 ファイル(BLOB)、DRMBS、NoSQLなど
 データの種類
構造化データ 非構造化データ
• カタログ検索
• ウェブ検索
• XML/JSONデータ検索
• PDF、オフィスドキュメント
• ファイル種類ごとの形式に合わせたライブラリによりテキスト抽出
• テキスト抽出ライブラリ: Apache Tikaなど
• Azure Search Blobストレージインデクサー:オフィス、PDF,
HTMLからのインデックス作成が可能
• 画像、音声・動画データ
• OCR、画像認識(人物・物)、音声認識技術を利用してメタ情報を構
造化データとして抽出
• Cognitive Services、Azure Media Servicesメディア分析:画像、
音声・動画データからのメタデータ抽出可能
メディア x 音声認識 x 機械翻訳 x 全文検索
https://github.com/shigeyf/ai-digitalmedia
Azureサービスを活用した検索サービス事例
国立大学法人岐阜大学 IR情報基盤
https://www.microsoft.com/ja-jp/casestudies/gifu-u.aspx
Azureサービスを活用した検索サービス事例
富士フィルムソフトウェア株式会社様 - 「IMAGE WORKS」
• Azure の PaaS を最大限に活用しサービスの安定性、拡張性、利便性の飛躍的向上
• Cosmos DB (NoSQL) とAzure Search (全文検索) を利用した性能向上
https://www.microsoft.com/ja-jp/casestudies/ffs.fujifilm.aspx
全文検索
アプリケーション開発
サンプルアプリケーション
 Q&Aナレジッジベース全文検索アプリ
 サンプルソースコード
 https://github.com/yokawasa/azure-search-qna-demo
サービスのプロビジョニング
 ポータルでアカウント作成
 アカウント名設定
 リージョン設定
 SKUの選択
 Free, Basic, Standard
S1,S2,S3
途中でSKUの変更ができ
ないのであらかじめ余裕
を持ったKUの選択が必要
インデックスの作成
管理ポータルもしくはAPI経由でインデックスのスキーマ定義を行う
スキーマで定義するのは大きく次の3つ
• 検索フィールド
• 主キー
• データ型: String, Collection(string list), Int32/64,
Double, DateTime, Boolean, Geography-point
• 属性: Retrievable, Filterable, Sortable, Facetable,
Searchable
• アナライザー(言語アナライザー)
• サジェスタ
• サジェッション候補用フィールド定義
• スコアリングプロファイル
• カスタムのスコア付け動作の定義。ランキングに影響
https://docs.microsoft.com/en-us/rest/api/searchservice/Create-Index
アナライザーの選択
• アナライザーとは?
• インデックス生成処理とクエリ処理の両方で実行されるテキスト解析処理
• フィールド単位で個別のアナライザーを設定可能
• 2種類の言語別アナライザー
• Luceneアナライザー
• Apache Luceneの中核プロジェクトLucene Coreに含まれる言語別アナライザー
• 35アナライザーが利用可能(2017年5月時点)
• 日本語Luceneアナライザーはja.lucene(”kuromoji”)
• Microsoftアナライザー
• マイクロソフト独自の自然言語処理技術をベースとした言語別アナライザー
• 50アナライザーが利用可能(2017年5月時点)
• 日本語Microsoftアナライザーはja.microsoft
日本語の場合ja.luceneかja.microsoftの2択と考えてよい
https://docs.microsoft.com/en-
us/rest/api/searchservice/language-support
スキーマ変更に関する注意点
スキーマの更新は限定的にサポート
〇
✖
• 新しいフィールドの追加
• 新しいフィールドが追加されると既存ドキュメントの追
加フィールドの値はNULL扱い
• 既存フィールドの種類変更、削除
インデックス作成 – 管理ポータル1
基本設定
フィールド属性
アナライザー
設定
サジェスタ設定
インデックス作成 – 管理ポータル2
基本設定
フィールド属性
アナライザー
サジェスタ設定
スコアリング
プロファイル設定
CORS設定
インデックス作成 – REST API
POST /indexes?api-version=2016-09-01
Host: qnademo.search.windows.net
api-key: 91FAB1CDBD75CF1D39491043BF3491AC
Content-Type: application/json
{
"name": "qna",
"fields": [
{ "name":"id", "type":"Edm.String", "key":true, "retrievable":true, "searchable":false, "filterable":false,
"sortable":false, "facetable":false },
{ "name":"question", "type":"Edm.String", "retrievable":true, "searchable":true, "filterable":false,
"sortable":false, "facetable":false,"analyzer":"ja.lucene"},
{ "name":"answer", "type":"Edm.String", "retrievable":true, "searchable":true, "filterable":false,
"sortable":false, "facetable":false,"analyzer":"ja.lucene"},
{ "name":"category", "type":"Edm.String", "retrievable":true, "searchable":false, "filterable":true,
"sortable":true, "facetable":true }
],
"suggesters": [
{ "name":"questionsg", "searchMode":"analyzingInfixMatching", "sourceFields":["question"] }
],
"scoringProfiles": [
{
"name": "weightedFields",
"text": {
"weights": {
"question": 9,
"answer": 1
}
}
}
],
"corsOptions": {
"allowedOrigins": ["*"],
"maxAgeInSeconds": 300
}
}
基本設定
フィールド属性
アナライザー
サジェスタ設定
CORS設定
スコアリング
プロファイル設定
インデックス更新 – 直接PUSH
APIにドキュメントを直接POSTしてリアルタイム に近いデータ 更新が可能
更新内容反映までの時間はその時のシステムの負荷状況により異なります
POST /indexes/qna/docs/index?api-version=2016-09-01
Host: qnademo.search.windows.net
api-key: 91FAB1CDBD75CF1D39491043BF3491AC
Content-Type: application/json
{
"value": [
{
"@search.action": "upload",
"id": "37e308d0-c62f-45b5-b953-363c3b77c1ea”,
"question": "Azure Cosmos DB とは何ですか?”,
"answer": "Azure Cosmos DB は、グローバルにレプリケートされたマルチモデル…",
"category": "CosmosDB"
},
{
"@search.action": "upload",
"id": "94e26eff-3048-4275-a8d0-4b4856dc6b3c",
"question": "提供されているアルゴリズムは、R または Python で記述されていますか”,
"answer": "いいえ。これらのアルゴリズムは、多くの場合、より優れたパフォーマンスを… ",
"category": "MachineLearning"
},
…
]
}
一度に最大1000ドキュメントまで、
もしくはBODYサイズ最大16MB
までPOSTすることが可能。
インデックス更新 – インデクサー利用
• インデクサーの設定により、特定のデータ
ソースから定期的に更新データをポーリング
してインデックスの更新をすることが可能
• 設定方法
• 管理ポータル経由で設定: 比較的簡単に設定可能、
ただし一部機能は制御不可
• REST API経由で設定: コードにより細かな制御
が可能
• インデクサー設定の流れ
1. Azure Searchにデータソースを登録
2. Azure Searchに更新先インデックスを作成
3. Azure Searchにインデクサーを設定
IndexWriter
Indexer
インデクサーによる更新設定 - 管理ポータル
①データソース登録
②ターゲット
インデックス設定
③インデクサー登録
Cosmos DBをデータソースとしたインデクサー設定例(更新対象インデックスqna)
インデクサーによる更新設定 – REST API
Cosmos DBをデータソースとしたインデクサー設定例(更新対象インデックスqna)
POST /datasources?api-version=2016-09-01
Host: qnademo.search.windows.net
api-key: 91FAB1CDBD75CF1D39491043BF3491AC
Content-Type: application/json
{
"name": ”qnadb",
"type": "documentdb",
"credentials": {
"connectionString":
"AccountEndpoint=https://yoichikademo.documents.azure.com;Accou
ntKey=Tl1+ikQtnExUisJ+BXwbbaC8NtUqYVE9kUDXCNust5aYBduhui29Xtxz3
DLP88PayjtgtnARc1PW+2wlA6jXJw==;Database=qna"
},
"container": {
"name": ”qna",
"query": "SELECT s.id, s.question, s.answer,
s.category, s._ts FROM Sessions s WHERE s._ts > @HighWaterMark"
},
"dataChangeDetectionPolicy": {
"@odata.type":"#Microsoft.Azure.Search.HighWaterMarkChangeDetec
tionPolicy",
"highWaterMarkColumnName": "_ts"
}
}
POST /indexers?api-version=2016-09-01
Host: qnademo.search.windows.net
api-key: 91FAB1CDBD75CF1D39491043BF3491AC
Content-Type: application/json
{
"name": ”qnaindexer",
"dataSourceName": ”qnadb",
"targetIndexName" : ”qna",
"schedule":
{
"interval" : "PT5M",
"startTime" :"2017-09-25T00:00:00Z"
}
}
qnadb
qnaindexerデータソース登録対象の
DocumentDBの接続文字列
DocumntDBからの更新対象
データ取得用クエリ
インデクサ名
データソース名
更新対象インデックス名
qna
DocumentDB
コレクション名
データソース名
検索クエリによるドキュメント取得
エンドポイント (METHOD:GET)
https://<アカウント名>.search.windows.net/indexes/<インデックス名>/docs
&search=keyword
&searchMode=all
&queryType=full
?api-version
=2016-09-01
&$count=true
&$top=5
&$skip=10
&$select=title,content
&$orderby=updatetime desc
&facet=category
&highlight=title
共通
結果表示用
全文検索関連パラメータ
search • 全文検索用キーワード指定
• アナライザ処理、ランキング処理適用
searchMode Booleanクエリ評価方法指定
(all |any)
queryType クエリパーサーを選択:Simple or Lucene
(simple|full)
&$filter=
category eq x
searchや$filter、その他クエリ文やパラメータに関する参考セッション
de:code2017: その情報うまく取り出せていますか? 〜 意外と簡単、Azure Search で短時間で
検索精度と利便性を向上させるための方法
https://channel9.msdn.com/Events/de-code/2017/DI08
絞り込み用
Q&Aアプリ - 検索クエリ解説
エンドポイント (METHOD:GET)
/indexes/<インデックス名>/docs
api-version=2016-09-01
$top=50
$select=id,question,answer,category
highlight=question,answer
facet=category,count:10
searchMode=any
queryType=full
search=Azure~1
$filter=category%20eq%20%27AzureSearch%27'
APIバージョン指定
上位50件取得
検索で取得するフィールド指定
検索ヒットした語句をハイライトするフィールド指定
ファセット用フィールド指定、上位10ファセット取得
Booleanクエリ評価方法指定: any=X OR Yで広く取得
クエリパーサーを選択: full = Luceneクエリパーサー
全文検索キーワード、「~1」=Luceneクエリのあいまい
検索で1文字入れ替えてマッチするもの全てヒット
フィルター指定: 「category eq AzureSearch」
をURLエンコード
Simple Query syntax
Lucene Query syntax
サジェッション
入力したキーワード文字列に関連の深い語句を逐次予測して表示するための機能
事前に検索対象フィールドをサジェスタ(suggesters)登録する必要があります
"suggesters": [
{
"name":"questionsg",
"searchMode":"analyzingInfixMatching",
"sourceFields":["question"]
}
],
/indexes/qna/docs/suggest
suggesterName
search Azu
文の先頭または中間にある
フレーズのマッチング
(2017-09時点でこのモードのみ)
{
"@odata.context":
"https://qnademo.search.windows.net/indexes(‘qna
')/$metadata#docs(id)",
"value":
{ "@search.text": "Azure AD、Office 365、Azure
の関係はどうなっていますか?",
”id": "3290cbb7-2f62-4948-b984-1bced9a6cb5f"},
{"@search.text": "Azure Cosmos DB の MongoDB
用 API とは何ですか?",
”id": "af19017e-1c72-4b34-b121-9b7efa91cc4a"},
…
]}
https://docs.microsoft.com/en-us/rest/api/searchservice/suggesters
Q&Aアプリ - サジェスションクエリ解説
エンドポイント (METHOD:GET)
/indexes/<インデックス名>/docs/suggest
api-version=2016-09-01
$top=10
select=question
suggesterName=questionsg
fuzzy=true
search=Azure
APIバージョン指定
上位50件取得
検索で取得するフィールド指定
サジェスタの指定
Fuzzy(あいまい)検索有効化
全文検索キーワード指定
もちろんフィルタと合わせての指定も可能
&search=Azure
&$filter=category%20eq%20%27AzureSearch%27'
オートコンプリートUX - typeahead.js
https://github.com/twitter/typeahead.js
• オートコンプリートのユーザーエクスペリエンス
を簡単に実装できる
• 大きくBloodhoundとTypeaheadの2種類
• Bloodhound: suggestionエンジン
• Typeahead: UIライブラリ
• 本サンプル(左)ではBloodhoundのみ使用
サジェスチョン
出力結果表示用form
Bloodhoundを使った
サジェスションデータ
取得ロジック
typeahead.jsの
インクルード
ファセット・ナビゲーション
ドリルダウンナビゲーションを提供するフィルター処理の一種
スキーマでfacetable:true、filterable:trueで登録されているフィールドを使用
して、クエリ時に作成します
{
"name":”cateogry", "type":"Edm.String",
"searchable": false, "filterable":true,
"sortable":true, "facetable":true
},
インデックス定義でフィールドのファセット有効化
ファセットリクエスト
/indexes/qna/docs
facet
search
"@search.facets": {
"color@odata.type":
"#Collection(Microsoft.Azure.Search.V2016_09_01.Q
ueryResultFacet)",
”category": [
{ "count": 65, "value": ”CosmosDB “ },
{ "count": 35, "value": ”MachineLearning“ },
{ "count": 21, "value": ”AzureAD“ },
{ "count": 17, "value": ”AppInsights “ },
{ "count": 12, "value": “LogAnalytics“ }
…
],
ここでは1ファセットのみ。
複数のファセットを指定す
ることも可能
検索精度のチューニングについて
検索精度チューニングのための主要設定箇所は以下4点
ポイント 役割 設定箇所
アナライザー テキストのトークン化 インデックススキーマ
クエリ トークンの絞り込み、マッチング
の挙動と結果評価の制御
クエリパラメータ
ランキング 関連度(スコア)の計算 スコアリングプロファイル
クエリパラメータ
同義語辞書 辞書ベースのキーワードの展開
(クエリ側でのみ)
同義語辞書
インデックススキーマ
検索精度チューニングに関する参考セッション
de:code2017: その情報うまく取り出せていますか? 〜 意外と簡単、Azure Search で短時間で
検索精度と利便性を向上させるための方法
https://channel9.msdn.com/Events/de-code/2017/DI08
Azure Search UIライブラリ- AzureSearch.js
https://github.com/Yahnoosh/AzSearch.js • Azure Searchプロダクトチーム主要開発者によ
り開始されたOSSライブラリ(TypeScript)
• ライブラリが提供するオブジェクト操作により非
常に短いコードでサーチ用UIを組み立てることが
可能(サーチボックス、結果出力、ページネー
ション、ファセット、サジェスション、 etc)
• テンプレートジェネレータ
• http://azsearchstore.azurewebsites.net/
azsearchgenerator/index.html
• デモサイト
• https://azsearchstore.azurewebsites.net
/realestate.html
モニタリング・分析
検索ログ・メトリックスの有効活用
• 検索オペレーションログやメトリックスの自動収集をポータルで有効化
• 収集データはAzure Storageに保存
ポータルで機能有効化と保存先ストレージの選択 オペレーションログ メトリックス
保存
コンテナ
insights-logs-
operationlogs
insights-metrics-
pt1m
内容 • インデックス作成
• インデクシング
• 検索クエリ
• サジェストクエリ
• など
• レイテンシー
• クエリ数/秒
(QPS)
※分単位
ストレージにログ保存
オペレーションログ・メトリック有効化
検索ログサンプル
{
"time": "2016-05-07T09:15:24.3901416Z",
"resourceId": "/SUBSCRIPTIONS/87C7C7F9-0C9F-
47D1-A856-1305A0CBFD7A/RESOURCEGROUPS/RG-SEARCH-
DEMO/PROVIDERS/MICROSOFT.SEARCH/SEARCHSERVICES/YO
ICHIKADEMO0",
"operationName": "Query.Search",
"operationVersion": "2015-02-28",
"category": "OperationLogs",
"resultType": "Success",
"resultSignature": 200,
"durationMS": 41,
"properties": { "Description" : "GET
/indexes('decodesessions2016')/docs" , "Query" :
"?$top=12&$select=id,title,url,thumbnail,descript
ion&api-version=2015-02-28&search=Azure" ,
"Documents" : 12, "IndexName" :
"decodesessions2016" }
}
オペレーションログ例:クエリログ
{
"resourceId": "/SUBSCRIPTIONS/87C7C7F9-
0C9F-47D1-A856-1305A0CBFD7A/RESOURCEGROUPS/RG-
SEARCH-
DEMO/PROVIDERS/MICROSOFT.SEARCH/SEARCHSERVICES
/YOICHIKADEMO0",
"metricName": "SearchQueriesPerSecond",
"time": "2016-05-13T13:14:00Z",
"average": 0.05,
"minimum": 0,
"maximum": 2,
"total": 3,
"count": 60,
"timeGrain": "PT1M"
}
メトリックログ例:QPS
ログ分析: Power BIによる可視化
• ストレージにアーカイブされたログはPower BI連携により簡単に可視化が可能
• 連携はAzure Search用Power BIコンテンツパックを利用
https://powerbi.microsoft.com/ja-jp/documentation/powerbi-content-pack-azure-
検索トラフィック分析 - App Insights連携
• Application Insightsと連携することでより具体的なトラフィックの分析を実
装することが可能です。ユーザーとその行動に関する洞察を明らかにするこ
とができます。
• 必要な設定:
1. 検索トラフィック分析用のApplication Insightsリソースを作成
2. ユーザーの検索リクエストデータと検索結果に対するクリックデータをAppInsightsにロギングするため
にクライアントサイドにコードを埋め込む
3. Power BI Desktopでレポーティング詳細を確認(BIテンプレートが利用可能)
• Power BI Desktopテンプレートで得られる情報
• クリック率 (CTR): 検索総数に対する特定のドキュメントをクリックしたユーザー数の割合。
• クリックされていない検索語句: クリックが登録されていない上位クエリの語句
• 最もクリックされた人気ドキュメント語句
• 人気のある語句とドキュメントの組み合わせ
• クリック時間
https://docs.microsoft.com/en-us/azure/search/search-traffic-analytics
APPENDIX
Free Basic Standard S1 Standard S2
Maxサービス数 1 12 12 6
Maxインデック
ス数/サービス
3 5 50 200
Maxドキュメン
ト数/サービス
1000
0
100万 1500万/P
(1.8億/サービス)
6000万/P
(7.2億/サービス)
Maxストレージ
サイズ/サービス
50MB 2GB 25GB/P
(300GB/サービ
ス )
100GB/P
(1.2TB/サービス)
Maxパーティ
ション数/サービ
ス
N/A 1 12 12
Maxレプリカ数/
サービス
N/A 3 12 12
Maxサーチユ
ニット数/サービ
ス
N/A 3 36 36
クエリ数/秒
(QPS) 目安
N/A 〜3/R 〜15/R 〜60/R
Standard S3 Standard S3 HD
6 6
200 1000/P
(3000/サービス)
1.2億/P
(14億/サービス)
2000万/P
(100万/インデックス)
200GB/P
(2.4TB/サービス)
200GB/P
(600G/サービス)
12 3
12 12
36 36
>60/R >60/R
お試しから大規模まで充実したSKU
https://azure.microsoft.com/ja-jp/pricing/details/search/
Cognitive Services: 人工知能サービスAPI群
画像認識、音声認識、テキスト認識など、ディープ ラーニング手法による大きなコンピューティング
パワーを必要とする処理などを Azure の API Service として提供。 https://www.microsoft.com/cognitive-services/
AI x Search - 非構造化データ検索実装例
Liberty Of Corom
• プロジェクト概要
• スマホ、メール、スキャナを問いしてアップロードされたドキュメントや画像をデータ解析パイプライ
ンにかけて検索可能にするための一連のパイプラインを提供する。データ解析にMicrosoft Cognitive
Servicesを、全文検索エンジンにAzure Searchを利用
• プロジェクトサイト
• ソースコード: https://github.com/Corom/LibraryOfCorom
• 紹介ビデオ: https://channel9.msdn.com/Events/Build/2017/B8081#time=5m30s
• プロジェクト概要
• メディア x 音声認識 x 機械翻訳 x 全文検索
• ウェブフロント(コンテナ)、データ生成ワークフロー
全てサーバレスで実現
• ワークフロー
• ストレージコンテナにアップロードされた動画ファイル
をAzure Media Analyticsパイプラインを通じて映像
キャプション取得
• Microsoft Translatorにより多言語サブタイトル取得
• キャプション、サブタイトルは全文検索のためAzure
Searchでインデックス化
• 上記一連のワークフローはLogic App、Functionsにより
完全自動化
• プロジェクトサイト
• https://github.com/shigeyf/ai-digitalmedia
AI x Search - 非構造化データ検索実装例
AI Digital Media
ウェブクローリングシナリオ実装例
PythonスクレイピングフレームワークであるScrapyを利用したウェブクローリングシナリオ実装例
1. Scrapyにより特定サイト内コンテンツを
スクレイピング
2. スクレイピングで取得されたデータを
CosmosDB(データソース)に格納
3. Azure Searchのインデクサーが定期的
にCosmosDB更新内容を元にインデック
スを更新
https://github.com/yokawasa/scrapy-azuresearch-crawler-samples

More Related Content

What's hot

Azure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveAzure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveNaohiro Fujie
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理Naohiro Fujie
 
プロトコルから見るID連携
プロトコルから見るID連携プロトコルから見るID連携
プロトコルから見るID連携Naohiro Fujie
 
[Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送
 [Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送 [Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送
[Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送Google Cloud Platform - Japan
 
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールAWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールMasaki Suzuki
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるNaohiro Fujie
 
テレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラテレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラChangeVision
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門Hiroyuki Wada
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified IDNaohiro Fujie
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
NuxtでAPIサーバー立ててみた
NuxtでAPIサーバー立ててみたNuxtでAPIサーバー立ててみた
NuxtでAPIサーバー立ててみたssuserbf0fbd
 
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techConsumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techToshiaki Maki
 
Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれDevTakas
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介Tetsutaro Watanabe
 
Google Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdfGoogle Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdfGoogle Cloud Platform - Japan
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13Amazon Web Services Japan
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation Amazon Web Services Japan
 

What's hot (20)

Azure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep DiveAzure ADと外部アプリのID連携/SSO - Deep Dive
Azure ADと外部アプリのID連携/SSO - Deep Dive
 
Azure ADとIdentity管理
Azure ADとIdentity管理Azure ADとIdentity管理
Azure ADとIdentity管理
 
プロトコルから見るID連携
プロトコルから見るID連携プロトコルから見るID連携
プロトコルから見るID連携
 
[Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送
 [Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送 [Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送
[Cloud OnAir] Google Cloud で実践するマイクロサービスアーキテクチャ 2019年2月21日 放送
 
AWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツールAWS Lambdaのテストで役立つ各種ツール
AWS Lambdaのテストで役立つ各種ツール
 
Azure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみるAzure AD B2CにIdPを色々と繋いでみる
Azure AD B2CにIdPを色々と繋いでみる
 
テレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラテレワーク下の要件定義(RDRA:ラドラ
テレワーク下の要件定義(RDRA:ラドラ
 
Rest ful api設計入門
Rest ful api設計入門Rest ful api設計入門
Rest ful api設計入門
 
Keycloak拡張入門
Keycloak拡張入門Keycloak拡張入門
Keycloak拡張入門
 
今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID今なら間に合う分散型IDとEntra Verified ID
今なら間に合う分散型IDとEntra Verified ID
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
NuxtでAPIサーバー立ててみた
NuxtでAPIサーバー立ててみたNuxtでAPIサーバー立ててみた
NuxtでAPIサーバー立ててみた
 
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techConsumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
 
Azure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれAzure ADアプリケーションを使用した認証のあれやこれ
Azure ADアプリケーションを使用した認証のあれやこれ
 
がっつりMongoDB事例紹介
がっつりMongoDB事例紹介がっつりMongoDB事例紹介
がっつりMongoDB事例紹介
 
Google Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdfGoogle Cloud でアプリケーションを動かす.pdf
Google Cloud でアプリケーションを動かす.pdf
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
 
Azure Search 大全
Azure Search 大全Azure Search 大全
Azure Search 大全
 
20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation 20191001 AWS Black Belt Online Seminar AWS Lake Formation
20191001 AWS Black Belt Online Seminar AWS Lake Formation
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 

Similar to Azure サービスを活用して作るフルマネージドな全文検索アプリケーション

[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法de:code 2017
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...Amazon Web Services Japan
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractTakeshi Ogawa
 
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...Shotaro Suzuki
 
DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~
DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~
DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~decode2016
 
What's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 ReleaseWhat's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 ReleaseShotaro Suzuki
 
JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE 陽平 山口
 
まる見え、AWS!! - JAWS UG 2015 -
まる見え、AWS!! - JAWS UG 2015 -まる見え、AWS!! - JAWS UG 2015 -
まる見え、AWS!! - JAWS UG 2015 -Tomoaki Sakatoku
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Shinsuke Sugaya
 
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月VirtualTech Japan Inc.
 
クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来Keisuke Nishitani
 
Tokyowebmining5 yokkuns
Tokyowebmining5 yokkunsTokyowebmining5 yokkuns
Tokyowebmining5 yokkunsYohei Sato
 
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormationBCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation真吾 吉田
 
OSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニックOSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニック庸介 高橋
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudShotaro Suzuki
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"Kentaro Yoshida
 
現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い真吾 吉田
 
Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発Yuki Hattori
 

Similar to Azure サービスを活用して作るフルマネージドな全文検索アプリケーション (20)

[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
[DI08] その情報うまく取り出せていますか? ~ 意外と簡単、Azure Search で短時間で検索精度と利便性を向上させるための方法
 
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
 
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
Introducing the elastic 8.0 release a new era of speed, scale, relevance, and...
 
DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~
DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~
DEV-018_Azure Search Deep Dive ~検索エクスペリエンス向上のためのノウハウ徹底解説~
 
What's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 ReleaseWhat's New in the Elastic 8.4 Release
What's New in the Elastic 8.4 Release
 
JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE JAWSDAYS2016 Technical Deep DIVE
JAWSDAYS2016 Technical Deep DIVE
 
まる見え、AWS!! - JAWS UG 2015 -
まる見え、AWS!! - JAWS UG 2015 -まる見え、AWS!! - JAWS UG 2015 -
まる見え、AWS!! - JAWS UG 2015 -
 
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
 
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
 
クラウドネイティブ化する未来
クラウドネイティブ化する未来クラウドネイティブ化する未来
クラウドネイティブ化する未来
 
Tokyowebmining5 yokkuns
Tokyowebmining5 yokkunsTokyowebmining5 yokkuns
Tokyowebmining5 yokkuns
 
BCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormationBCPに活かせ!一撃 CloudFormation
BCPに活かせ!一撃 CloudFormation
 
OSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニックOSSから学ぶSwift実践テクニック
OSSから学ぶSwift実践テクニック
 
Building modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloudBuilding modernapplicationwithelasiccloud
Building modernapplicationwithelasiccloud
 
Apache Solr 入門
Apache Solr 入門Apache Solr 入門
Apache Solr 入門
 
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
 
現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い現場的!オンプレとAWSの違い
現場的!オンプレとAWSの違い
 
Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発Microsoft Graph APIを活用した社内アプリケーション開発
Microsoft Graph APIを活用した社内アプリケーション開発
 
AWS Search Services
AWS Search ServicesAWS Search Services
AWS Search Services
 

More from Yoichi Kawasaki

今Serverlessが面白いわけ v19.09
今Serverlessが面白いわけ v19.09今Serverlessが面白いわけ v19.09
今Serverlessが面白いわけ v19.09Yoichi Kawasaki
 
今Serverlessが面白いわけ
今Serverlessが面白いわけ今Serverlessが面白いわけ
今Serverlessが面白いわけYoichi Kawasaki
 
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Ageクラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native AgeYoichi Kawasaki
 
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイドAzure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイドYoichi Kawasaki
 
デベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューション
デベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューションデベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューション
デベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューションYoichi Kawasaki
 
Service Mesh Status Quo 2018: 2019年に向けたService Meshの現状課題の整理と考察
Service Mesh Status Quo 2018:  2019年に向けたService Meshの現状課題の整理と考察Service Mesh Status Quo 2018:  2019年に向けたService Meshの現状課題の整理と考察
Service Mesh Status Quo 2018: 2019年に向けたService Meshの現状課題の整理と考察Yoichi Kawasaki
 
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Yoichi Kawasaki
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望Yoichi Kawasaki
 
アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門Yoichi Kawasaki
 
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etcAzure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etcYoichi Kawasaki
 
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦Yoichi Kawasaki
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Yoichi Kawasaki
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Yoichi Kawasaki
 
Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!
Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!
Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!Yoichi Kawasaki
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウYoichi Kawasaki
 
Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法Yoichi Kawasaki
 
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with PythonPythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with PythonYoichi Kawasaki
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Yoichi Kawasaki
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Yoichi Kawasaki
 

More from Yoichi Kawasaki (20)

今Serverlessが面白いわけ v19.09
今Serverlessが面白いわけ v19.09今Serverlessが面白いわけ v19.09
今Serverlessが面白いわけ v19.09
 
今Serverlessが面白いわけ
今Serverlessが面白いわけ今Serverlessが面白いわけ
今Serverlessが面白いわけ
 
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Ageクラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
 
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイドAzure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
Azure Functions 2.0 Deep Dive - デベロッパーのための最新開発ガイド
 
デベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューション
デベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューションデベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューション
デベロッパーのためのAzureクラウドネイティブスタック 〜 提供したい価値からはじめる高速+高可用+高付加価値ソリューション
 
Service Mesh Status Quo 2018: 2019年に向けたService Meshの現状課題の整理と考察
Service Mesh Status Quo 2018:  2019年に向けたService Meshの現状課題の整理と考察Service Mesh Status Quo 2018:  2019年に向けたService Meshの現状課題の整理と考察
Service Mesh Status Quo 2018: 2019年に向けたService Meshの現状課題の整理と考察
 
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
Azure Containers & Serverless Technology Options (After-Tech-Summit-2018 Edit...
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
コンテナ&サーバーレス:トレンドの考察と少し先の未来の展望
 
アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門アプリケーション開発者のためのAzure Databricks入門
アプリケーション開発者のためのAzure Databricks入門
 
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etcAzure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
Azure Search 言語処理関連機能 〜 アナライザー、検索クエリー、辞書、& ランキング, etc
 
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
Kubernetes x PaaS – コンテナアプリケーションのNoOpsへの挑戦
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 応用編 -
 
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
Azure Functions&Logic Appではじめるサーバレスアプリケーション開発 - 入門編 -
 
Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!
Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!
Web App for Containers + Cosmos DBで コンテナ対応したMEANアプリを作ろう!
 
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
15分でお届けする Elastic Stack on Azure 設計・構築ノウハウ
 
Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法Azure PaaSを活用したモダン E コマースソリューションの構築方法
Azure PaaSを活用したモダン E コマースソリューションの構築方法
 
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with PythonPythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
PythonによるAzureサーバレスアプリケーション開発 / Serverless Application Development with Python
 
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう! Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したPHPアプリを作ろう!
 
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
Web App for Containers + MySQLでコンテナ対応したRailsアプリを作ろう!
 

Recently uploaded

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Recently uploaded (9)

スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Azure サービスを活用して作るフルマネージドな全文検索アプリケーション

Editor's Notes

  1. 特徴3つ -> シンプルプロトコルとAPI → 容易なマルチプラットフォーム対応、他サービスとの連携が可能 -> マネージド、運用が楽にできて、スケーラブルですよ -> 自然言語処理やランキングだってしっかりやってます。調整することもできます。
  2. - 仕事を探すジョブ検索サービス。 全てAzure Searchの機能で実現しているショーケースサイト - サジェスト: 文字を入れていくと、その文字に続く候補が自動的に表示 地理空間データを標準でサポート: 自分の位置から5キロ以内のアイテムを探す これら全てAzure Searchで実現している。ここでお見せした機能以外にもいろいろあります。 ここで言いたいことは、Azure Searchは検索サービスに必要な基本的な機能は全て提供しているということ
  3. <前頁につづいて>ではどのように検索サービスの機能を提供しているのかというと、シンプルなI/Fとフォーマットで提供しています。 言いたいこと:シンプルI/Fとフォーマット →  - 開発が楽、どの言語でも実装可能。 - 他システムとの連携が非常に楽であるということ
  4. 最初のASの特徴として完全マネージドでスケーラブルといったが、どうスケーラブルなのかというと 検索負荷(QPS)に対してもデータサイズの増加の両面でスケーラブルである ASはレプリカ x パーティションのスケールマトリクスがある レプリカ: 多重度 パーティション: データ分割度 レプリカ x パーティションでそれぞれ検索リクエストの負荷 x データサイズの増大に対してスケール
  5. APIやポータルから変更可能
  6. 検索対象データについて整理する 1.データソース 2.データ種類 Apache Tika : Javaで開発されたドキュメント分析およびメタデータ抽出ツールキット(PPT, XLS, and PDF) 画像認識、音声認識、テキスト認識など、ディープ ラーニング手法による大きなコンピューティングパワーを必要とする処理などを Azure の API Service として提供。 OCR/images – full text search https://azure.microsoft.com/en-us/blog/how-to-leverage-ocr-to-full-text-search-your-images-within-azure-search/
  7. 多様な書式・形式で存在する膨大な情報資産を分析・活用したり、情報発信するための情報基盤の構築にAzureを採用 生のデータ (非構造化データ) を一元管理する Azure Cosmos DB や Azure Data Lake Store 、 Excel などさまざまなドキュメントの情報を任意に検索できる検索機能として Azure Search
  8. 富士フィルムソフトウェア様のIMAGE WORKS: B2B向けのイメージ ファイルに特化した管理、共有サービス これまでオンプレで組んでいたシステムに限界を感じていた、Azureに移行されPaasを最大限に活用しての安定性、拡張性を向上 特にAzure DocumentDB とAzure Searchを組み合わせて性能向上いただいた。この中の全文検索機能としてAzure Searchをご利用いただいている
  9. 日本はJapan Westのみ
  10. https://docs.microsoft.com/en-us/rest/api/searchservice/addupdate-or-delete-documents
  11. https://docs.microsoft.com/en-us/rest/api/searchservice/addupdate-or-delete-documents リピータブルな設定を行うためにはコード化してREST AP経由での設定をお勧めします
  12. https://docs.microsoft.com/en-us/rest/api/searchservice/addupdate-or-delete-documents
  13. クエリ―パラメータの整理 - 大きく4種類: Common, 全文検索、絞り込み、結果表示 - searchと$filterの2種類がありそれぞれ用途、使い方が異なる Search は全文検索用でアナライザ、ランキング処理が走る searchModeとqueryTypeはsearch関連のパラメータでそれぞれ全文検索の結果の集め方やどのクエリパーサーを使うのかを指定します 一方 $filterは絞り込みようのパラメータでアナライザ、ランキング処理は走りません。よって、searchに比べて$fitlerは軽いです。
  14. Simple: デフォルトのクエリ言語、queryTypeパラメータの規定値 Lucene: Apache Lucene の一部として開発された表現性の高いクエリ言語, スコープ、あいまい、類似、正規表現など
  15. サジェスションクエリでのあいまいはチルダ「~」で表現するのではなく、fuzzyというパラメータを指定することに注意
  16. これまでよくいただいた質問にスケーラブルといってもPaaSなので大規模向けは無理ですよね?  → たしかに制限はあります。が・・ 2016/11にS3 + S3 HDが出ました 2016/11/15 - Azure Search S3 と S3 High Density の一般提供開始 S3HDは Standard 3 High Density is designed for a large number of smaller indexes。 S3のオプションとして選択可能 SKUの選択について https://docs.microsoft.com/en-us/azure/search/search-sku-tier 注意点: Basic->Standardのような自動アップグレードができない(2016-10時点) Allow to upgrade the pricing tier https://feedback.azure.com/forums/263029-azure-search/suggestions/12931110-allow-to-upgrade-the-pricing-tier NEED UPDATE https://azure.microsoft.com/ja-jp/pricing/details/search/ https://azure.microsoft.com/ja-jp/documentation/articles/search-limits-quotas-capacity/