SlideShare une entreprise Scribd logo
1  sur  41
BTC主催 Solr勉強会
solr勉強会
株式会社ビッグツリーキャピタル
SI事業部
高安 厚思
1Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5アジェンダ
▌自己紹介
▌1 全文検索とは
▌2 Apache Solrとは(30分クッキング)
▌3 Apache Solrの中身
▌4 Apache Solrを利用するためのプログラム(Java編)
▌5 Apache Solr利用時のポイント
2Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5自己紹介
高安 厚思
▌ 活動領域・キーワード
▌ 20年にわたり、ソフトウエアエンジニアリングを適用した
システム開発やコンサルティングに携わる。
▌ 最新技術を適切に利用した、柔軟なシステム構成の構築、
品質管理を中心として技術マネージメントなどを主要テーマとして活動。
▌ 開発方法論、アーキテクチャ設計コンサルティング、システム全体設計を
得意分野とする。
▌ 東京電機大学非常勤講師、SQuBOK設計開発領域 検討委員、
ITSS-DS検討委員
▌資格
▌ ネットワークスペシャリスト
▌ アプリケーションエンジニア(現 システムアーキテクト)
▌ プロジェクトマネージャ
▌ ITストラテジスト
▌ 情報セキュリティスペシャリスト
▌ MCSE
▌ MCSD
3Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5対外活動
最近の著書、訳書
▌ 「システム設計の謎を解く(ソフトバンク)」
▌ 「StrutsによるWebアプリケーション スーパーサンプル(ソフトバンク)」
▌ 「Seasar入門[(ソフトバンク)」
▌ 「Javaルールブック(エクスメディア)
▌ 「ITアーキテクトのためのシステム設計実践ガイド アーキテクチャ編(日経
BP)」など。
連載記事執筆
▌ 日経SYSTEMS誌「Webアーキテクチャ再入門」
講演
▌ SODEC ミッションクリティカル開発
▌ 日本テクノセンター セミナー講師
▌ UML Forum講師
▌ 日経BP社 ITアーキテクトのためのシステム設計フォーラム 特別講演 講師
▌ Developers Summit 2013 Summer
▌ QCon 2014
▌ ITpro Active製品選択支援セミナー
4Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5Solrに関する事例
▌Solrは2012年から案件で利用
5
マルチメディアコンテンツ販売会社向け
コンテンツの検索に利用
特徴として、複数単語による状況によるスコア操作
設定されているフィールドに対する順位付けの後、ページ内で並
べ替えをおこなう
公共図書館における書誌の検索
特徴として、複数単語による状況によるスコア操作
Hadoopによるインデックス作成
Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 全文検索とは
6Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5全文検索とは
▌単語を検索キーとして、対象の文書を見つけ出す操作
▌DBでも単語をまとめたテーブルに対してLike検索をすることで
実現可能?
7Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
単語数が増えた場合の性能の問題
(前方一致ならインデックスが使われる場合あり)
DBMSに格納する処理、検索する処理を
アプリケーションで書く必要がある。
単語にはゆれがある
(スペースの有り無し、全角半角、変化など)
そのため、DBMSより専用の検索エンジンミドルウェアを利用すべき。
(OracleText、Groongaなどもその対象)
BTC主催 Solr勉強会
1 2 3 4 5転置インデックス
▌高速に検索するために、単語と文書IDを結びつけるインデックスを利
用する。このインデックスを「転置インデックス」と呼ぶ
8Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
単語 文書ID
Solr 1,2,4
検索エンジン 2,6
Google 2,8
Yahoo 2,9
天気 12,13
転置インデックスによって高速な検索を実現している。
一方で、単語の切り出し方が重要となる。
BTC主催 Solr勉強会
1 2 3 4 5検索の精度
▌単語を入力して検索した場合に検索される文書に対して、適切かどう
かという意味で精度が重要となる
9Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
正解集合検索結果
重なりあったところが
正しい検索結果の一部
本来検索されないと
いけないが検索結果
に含まれない
検索されてはいけな
い内容が検索された
(=ノイズ)
この2つの集合(円)が一致することが理想だが、難しい。
トレードオフになることが多いため、この2つのどちらを優先するかが重要
BTC主催 Solr勉強会
1 2 3 4 5再現率と適合率
▌前頁の内容は学問的に研究されており、検索の精度を表す指標として、
「再現率」と「適合率」がある
10Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
検索結果に含まれた正解集合(個数)
再現率=
正解集合全体(個数)
検索結果に含まれた正解集合(個数)
適合率=
検索結果全体(個数)
前頁と同様に再現率と適合率はトレードオフになることが多いため、
この2つのどちらを優先するかが重要
BTC主催 Solr勉強会
1 2 3 4 5日本語の取り扱い
▌日本語の検索は単語の区切りが明確ではなく、転置インデックスを作
成しにくい
▌単語の区切りによって、適合率・再現率が変わるためどのようにする
かが検索精度を決定する
11Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
形態素解析
辞書をもとに単語を分類し、単語を分割する
(例 東京都⇒東京、都)
Ngram
意味を意識せずに文字で分割する。
(Nの文字のパターンで作る)
(例 東京都⇒東京、京都)
BTC主催 Solr勉強会
1 2 3 4 5言葉のゆれへの対応
▌自然言語を取り扱うため、表現の揺れを意識しないと
再現率が低くなる
▌標準的な表現を決めて、インデックスに格納する
▌インデックス作成、検索時に標準的な表現に変換して利用する
12Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
 旧字対応
 音便対応
 半角・全角
 大文字・小文字
 かな・カタカナ
 漢字(読み仮名)・送り仮名
 略語
 動詞変化
 単数・複数
 検索対象外(助詞等)
BTC主催 Solr勉強会
2 Apache Solrとは(30分クッキング)
13Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5
Apache Solrの特徴
Apache Solrとは
▌ApacheのLucenceのサブプロジェクト
▌現状のバージョンは4.10.x
▌Full Javaで実装されており、Webコンテナで動作する
▌HTTPによるリクエストを実現しており、各言語から利用可能
▌容易に導入できる割にスケールしやすい
14Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5
Apache Solrの特徴
ファセットによる絞り込み
▌検索対象の情報に対して、グループ化して検索条件を絞り込む方法を
「ファセット」と呼ぶ
▌Solrにおいて、ファセットを利用した絞り込みは重要な役割を持つ
15Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
Solrでは、
 フィールドの値
 条件クエリー
 範囲(数値、日付)
等を元に絞り込みの値及び対象件数を取得できる
BTC主催 Solr勉強会
1 2 3 4 5
Apache Solrの特徴
スコアリング
▌検索結果はLuceneが持つスコアリングロジックによってスコア化され
た結果順に結果が戻される
(sortオプションを使うと別の結果となる)
▌スコアリングは、TF-IDFに基づいて計算される
▌このスコアリングロジックに一部カスタマイズをすることが可能
16Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
TF(Term Frequency)
出現頻度を表す指標。「多くでてくる単語がその文書の特性を表
している」という考え方に基づく。
= 対象となる単語の出現回数/文書におけるすべての単語数
IDF(Inverse Document Frequency)
単語が共通で利用されていないかを表す指標。「共通ででてくる
単語は文書の特性を表していない」という考え方に基づく。
= log((全文書数/単語が含まれている文書数)) + 1
BTC主催 Solr勉強会
1 2 3 4 5
Apache Solrの特徴
検索単位と分散検索
▌検索をおこなうスキーマは一つしかもてないが、一つのサーバに対し
て、複数の検索集合を作ることができる
▌この検索集合の単位をコアと呼ぶ
▌複数の検索集合を取り扱うサーバ構成をマルチコアと呼ぶ
▌同一のスキーマであれば複数コアに対して検索することが可能
(分散検索)
▌同時アクセス数に対応するために、同一のインデックスをリプリケー
ションできる
17Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
Apache Solr30分間クッキング
Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 18
BTC主催 Solr勉強会
1 2 3 4 5導入
▌ダウンロードして、起動するまで
19Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
1. http://ftp.riken.jp/net/apache/lucene/solr/4.10.3/から
solr-4.10.3.zip をダウンロードする
2. 何らかのツールで解凍する
3. 以下のコマンドを用いて、起動する
cd example
java -jar start.jar
BTC主催 Solr勉強会
1 2 3 4 5管理コンソールの利用方法
▌管理コンソールにアクセスする
20Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
http://localhost:8983/solr/ にブラウザでアクセスする。
BTC主催 Solr勉強会
1 2 3 4 5デフォルトの動作とデモ環境
▌先ほどのコマンド実行ではデフォルトの動作
21Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
SOLRHOMEはsolrディレクトリとなる。
cd example
java -Dsolr.solr.home=multicore -jar start.jar
デモでは、2つのコアを利用するため、マルチコアを
利用する。
SOLRHOMEはmulticoreディレクトリとなる。
BTC主催 Solr勉強会
1 2 3 4 5一つ目のデモ
▌Wikipediaからタイトルを取得( MediaWiki API)
▌タイトルから記事本文とカテゴリを取得
▌Solrインデックスを作成
22Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
タイトル
クローラ
Wikipedia
記事
クローラ
タイトル
ファイル
index
この方法は時間がかかるので、あらかじめ作成してある
インデックスを利用します。
BTC主催 Solr勉強会
1 2 3 4 5管理コンソールのデモ
▌対象のフォルダをコピーする(conf/dataともに)
▌Solrを再起動する
▌管理コンソールを起動してwikiがあることを確認する
▌Queryの例
▌Schema Browser
▌Analysis (形態素とNgramの違い)
23Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5二つ目のデモ
▌空間検索を利用するデモ
▌駅データ.jp(http://www.ekidata.jp/)のデータを加工して、
CSVを作成
▌実際にインデックシングもデモします。
24Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
※ 空間検索にはJTS Topology Suiteが必要となるためダウンロードし、
example/lib/extにjts-1.13.jar、jtsio-1.13.jar
をコピーする必要があります。
BTC主催 Solr勉強会
1 2 3 4 5インデックシング
▌station用の設定ファイルなどを配置し、Solrを再起動する
(この状態ではデータは空)
▌管理コンソールから、対象のコアであるstationを選択する
▌DocumentTypeをCSVとする
▌DocumentsにCopy&Pasteする
▌Submit Documentボタンを押す
25Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
3 Apache Solrの中身
Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 26
BTC主催 Solr勉強会
1 2 3 4 5Apache Solr アーキテクチャ
▌Apache Solrのアーキテクチャは以下の通り
27Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
インタフェース層
SolrCore
searchHandler updateHandler
index
レスポンスライタ
solr-config.xml
schema.xml
リクエスト レスポンス
Apache Solr入門 p017 より引用・加工
クエリーパーサ
BTC主催 Solr勉強会
1 2 3 4 5クエリーパーサ
▌検索式を解釈するパーサ
▌パーサは3種類ある
▌デフォルトはLuceneパーサ
▌ DisMaxパーサ
▌ EDisMaxパーサ
▌パラメータdefTypeで指定できる
▌検索式の指定の仕方を選択できる
28Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
BTC主催 Solr勉強会
1 2 3 4 5SearchHandler
▌デフォルトでも設定されており、検索(select)・更新(update)などが
ある。
▌カスタマイズすることができる(solr-config.xmlにて設定)
29Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
<requestHandler name="/query" class="solr.SearchHandler">
パラメータ指定
</requestHandler>
例
サーチコンポーネント
<searchComponent name="query" class="solr.QueryComponent" />
<searchComponent name="facet" class="solr.FacetComponent" />
<searchComponent name="mlt" class="solr.MoreLikeThisComponent" />
<searchComponent name="highlight" class="solr.HighlightComponent" />
<searchComponent name="stats" class="solr.StatsComponent" />
<searchComponent name="debug" class="solr.DebugComponent" />
BTC主催 Solr勉強会
1 2 3 4 5設定ファイル
▌Solrコアの設定ファイルは2つ
▌ solr-config.xml
▌ schema.xml
30Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
solr-config.xml
 Solrコアの設定ファイル
 サンプルからコピーすると動作する
 キャッシュの設定やリクエストハンドラの設定などを
変更したい場合に本ファイルを変更する
schema.xml
 検索対象の情報をどのように格納するかを定義する設定ファイル
 Create table文のようなもの
 型定義や変換処理を定義できる
BTC主催 Solr勉強会
1 2 3 4 5デモのスキーマファイル(wiki)
31Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="title" type="text_ja" indexed="true" stored="true"/>
<field name="description" type="text_ja_html" indexed="true" stored="true"/>
<field name="category" type="string" indexed="true" stored="true" multiValued="true"/>
<uniqueKey>id</uniqueKey>
~中略
<fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false">
<analyzer>
<tokenizer class="solr.JapaneseTokenizerFactory" mode="search"/>
<filter class="solr.JapaneseBaseFormFilterFactory"/>
<filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" />
<filter class="solr.CJKWidthFilterFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" />
<filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType name="text_ja_html" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false">
<analyzer>
<charFilter class="solr.HTMLStripCharFilterFactory"/>
~以下略
BTC主催 Solr勉強会
1 2 3 4 5デモのスキーマファイル(station)
32Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
<field name="station_cd" type="string" indexed="true" stored="true" multiValued="false" required="true"/>
<field name="station_g_cd" type="string" indexed="true" stored="true" multiValued="false" />
<field name="station_name" type="text_ja" indexed="true" stored="true" multiValued="false" />
<field name="line_cd" type="string" indexed="true" stored="true" multiValued="false" />
<field name="pref_cd" type="string" indexed="true" stored="true" multiValued="false" />
<field name="post" type="string" indexed="true" stored="true" multiValued="false" />
<field name="add" type="text_ja" indexed="true" stored="true" multiValued="false" />
<field name="point" type="location_rpt" indexed="true" stored="true" multiValued="false" />
~中略
<fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory"
distErrPct="0.025"
maxDistErr="0.000009"
units="degrees" />
~以下略
BTC主催 Solr勉強会
1 2 3 4 5変換処理
▌再現率を高めるために、インデックス作成時及び検索時に変換をおこ
なう。
33Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
検索文字列
複数単語
CharFilter Tokenizer TokenFilter
検索文字列
複数単語 単語単位
文字単位で
変換する
単語に
区切る
単語単位で
変換する
 MappingCharFilter
 HTMLStripCharFitler
 JapaneseTokenizer
 WhitespaceTokenizer
 NGramTokenizer
 JapaneseBaseFormFilter
 CJKWidthFilter
 LowerCaseFilter
BTC主催 Solr勉強会
4 Apache Solrを利用するための
プログラム(Java編)
Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 34
BTC主催 Solr勉強会
1 2 3 4 5インデックス作成
▌管理コンソールやCurlコマンドなどによってインデックスを作成する
ことは可能だが、プログラム言語を用いて作成することも可能
35Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
SolrServer server = new HttpSolrServer("http://localhost:8983/solr/wiki/");
private static List<SolrInputDocument> list = new ArrayList<>();
SolrInputDocument input = new SolrInputDocument();
input.setField("title", model.getTitle());
input.setField("description", model.getHtml());
for (String category : model.getCategories()) {
input.addField("category", category);
}
list.add(input);
if (list.size() > COMMIT_COUNT) {
server.add(list);
server.commit();
list.clear();
}
コミットには一定コストがかかるので、
まとめて実施するのがセオリー
BTC主催 Solr勉強会
1 2 3 4 5検索 単純なパターン(全件)
36Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
HttpSolrServer server = new HttpSolrServer("http://localhost/solr/wiki/");
@Test
public void test() {
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
try {
QueryResponse res = server.query(query);
SolrDocumentList list = res.getResults();
System.out.println("かかった時間(ms): "+res.getElapsedTime());
System.out.println("検索件数: "+list.getNumFound());
System.out.println("開始位置: "+list.getStart());
list.forEach(doc -> System.out.println("取得したタイトル:
"+doc.getFieldValue("title")));
} catch (SolrServerException e) {
e.printStackTrace();
}
}
かかった時間(ms): 131
検索件数: 94503
開始位置: 0
取得したタイトル: 反転幾何学
取得したタイトル: 地球の想い~ほし
の想い~
取得したタイトル: 富里スイカロード
レース大会
取得したタイトル: 南富山駅
取得したタイトル: 長尾忠綱
取得したタイトル: 大島建彦
取得したタイトル: 有本義明
取得したタイトル: 平城・相楽ニュー
タウン
取得したタイトル: 大路恵美
取得したタイトル: 相澤奈美
テストプログラム 実行結果
SolrDocumentListは
ArrayList<SolrDocument>を継承している。
*:*は
検索対象フィールド:検索文字列
を表す。
BTC主催 Solr勉強会
1 2 3 4 5検索 複雑な場合
▌検索で複雑なことを考える場合、検索式がどのようになるかを考える
必要がある
▌いきなりプログラムを書くのではなく、管理コンソールを利用して検
索式を検討してから、その検索式をAPI(SolrQuery)で
マッピングする
▌検索語の処理については、単純な場合と同様
37Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
 開始位置
 取得件数
 ソート順
 取得フィールド
 フィルタクエリー
 ファセット
 クエリーパーサ
 ハイライト
BTC主催 Solr勉強会
5 Apache Solr利用時のポイント
Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 38
BTC主催 Solr勉強会
1 2 3 4 5検索の精度を高める
▌検索の精度を高めるために、複数フィールドを組み合わせて
検索をおこなう
39Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
例)日本語の取り扱いとして、NGramと形態素の2つ
のフィールドを利用
例)タイトルと本文のフィールドを利用
例)漢字と読み仮名のフィールドを利用
これらのフィールドの組み合わせとブーストを組み合わせて
検索の精度を高める
BTC主催 Solr勉強会
1 2 3 4 5インデックス作成と検索
▌インデックス作成と検索のサーバは規模が大きくなる場合、分けた方
が良い。
▌データ件数が多い場合(1000万件が目安)、複数台数に分けて
分散検索を検討する
40Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
コア1
A
コア1
S
コア1
A
コア2
A
コア1
S
コア2
A
コア2
S
コア2
S
コア‐Z
A
分散検索
振り分け
振り分け
コアのswap
コア1
作成
コア2
作成
検索 インデックス作成
上記構成をSolrの機能として拡張させたのが「Solr Cloud」(Solr4.0~)
BTC主催 Solr勉強会
1 2 3 4 5性能特性
▌転置インデックスがあるため、単語が含まれている文書を
見つける等に性能が良い
▌ツリーインデックスなどではないため、DBとは異なる性能特性を持つ
▌開始位置が深くなるにつれて、取得に時間がかかるようになる
(deep paging 問題)
▌分散検索をする場合は、分散検索を統合する検索サーバにメモリ上の
オーバヘッドかかり、deep paging問題は深刻。
(Googleにおいても深いページは表示できない)
41Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.

Contenu connexe

Tendances

MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法yoku0825
 
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件y-uti
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザインMasayuki Kobayashi
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発Takafumi ONAKA
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーyoku0825
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれKumazaki Hiroki
 
イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方Yoshitaka Kawashima
 
Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3Nobuhiro Hatano
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみたakira6592
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント土岐 孝平
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来についてshinjiigarashi
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターンSoudai Sone
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINE Corporation
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る wata2ki
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようShinsuke Sugaya
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門Yoshitaka Seo
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話Preferred Networks
 

Tendances (20)

MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法MySQLで論理削除と正しく付き合う方法
MySQLで論理削除と正しく付き合う方法
 
anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件anyenv + phpenv + php-build が便利すぎる件
anyenv + phpenv + php-build が便利すぎる件
 
大規模DCのネットワークデザイン
大規模DCのネットワークデザイン大規模DCのネットワークデザイン
大規模DCのネットワークデザイン
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
2018/1/30 Django勉強会
2018/1/30 Django勉強会2018/1/30 Django勉強会
2018/1/30 Django勉強会
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方イマドキのExcelスクショの撮り方
イマドキのExcelスクショの撮り方
 
Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
私たちはRESTCONFでネットワーク自動化的に何が嬉しくなるのか考えてみた
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
 
PostgreSQLアンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 
Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る Linuxのsemaphoreとmutexを見る 
Linuxのsemaphoreとmutexを見る 
 
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみようSolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話ツイートID生成とツイッターリアルタイム検索システムの話
ツイートID生成とツイッターリアルタイム検索システムの話
 

Similaire à solr勉強会資料

技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)Atsushi Takayasu
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]David Buck
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Logico
 
20180725 Learning To Rank meetup
20180725 Learning To Rank meetup20180725 Learning To Rank meetup
20180725 Learning To Rank meetupYasufumi Mizoguchi
 
20101022 構成管理勉強会資料
20101022 構成管理勉強会資料20101022 構成管理勉強会資料
20101022 構成管理勉強会資料Atsushi Takayasu
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムオラクルエンジニア通信
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Nozomi Kurihara
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムsatsuki fukazu
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決オラクルエンジニア通信
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC EnterpriseYusukeKuramata
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかChihiro Ito
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視Takanori Suzuki
 
Hadoop conferencejapan2011
Hadoop conferencejapan2011Hadoop conferencejapan2011
Hadoop conferencejapan2011Ichiro Fukuda
 
Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904
Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904
Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904Nozomi Kurihara
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索yoyamasaki
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLRyusuke Kajiyama
 
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)irix_jp
 

Similaire à solr勉強会資料 (20)

技術勉強会(Solr入門編)
技術勉強会(Solr入門編)技術勉強会(Solr入門編)
技術勉強会(Solr入門編)
 
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
Lambda: A Peek Under The Hood [Java Day Tokyo 2015 6-3]
 
Nashorn in the future (Japanese)
Nashorn in the future (Japanese)Nashorn in the future (Japanese)
Nashorn in the future (Japanese)
 
20180725 Learning To Rank meetup
20180725 Learning To Rank meetup20180725 Learning To Rank meetup
20180725 Learning To Rank meetup
 
20101022 構成管理勉強会資料
20101022 構成管理勉強会資料20101022 構成管理勉強会資料
20101022 構成管理勉強会資料
 
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステムochacafe#6 人にもマシンにもやさしいAPIのエコシステム
ochacafe#6 人にもマシンにもやさしいAPIのエコシステム
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316Kafka vs Pulsar @KafkaMeetup_20180316
Kafka vs Pulsar @KafkaMeetup_20180316
 
OSSで作るOpenStack監視システム
OSSで作るOpenStack監視システムOSSで作るOpenStack監視システム
OSSで作るOpenStack監視システム
 
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
(Tech DeepDive #1) Java Flight Recorder を活用した問題解決
 
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
今注目のSpark SQL、知っておきたいその性能とは 20151209 OSC Enterprise
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
 
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうかWebアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
Webアプリに低レイテンシ・高可用性を求めるのは間違っているのだろうか
 
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
ServerlessConf Tokyo2018 サーバーレスなシステムのがんばらない運用監視
 
Hadoop conferencejapan2011
Hadoop conferencejapan2011Hadoop conferencejapan2011
Hadoop conferencejapan2011
 
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
第15回Solr勉強会 - Solr at Yahoo! JAPAN #SolrJP
 
Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904
Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904
Apache Pulsarの近況 & meetup 北京の参加報告 @PulsarMeetupJapan_20190904
 
MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索MySQL 5.7 InnoDB 日本語全文検索
MySQL 5.7 InnoDB 日本語全文検索
 
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQLMySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
MySQLのNoSQL機能 - MySQL JSON & HTTP Plugin for MySQL
 
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
Interop2014 - OpenStackの概要と最新技術動向(Icehouse)
 

Plus de Atsushi Takayasu

要求開発アライアンス 9月定例会議
要求開発アライアンス 9月定例会議要求開発アライアンス 9月定例会議
要求開発アライアンス 9月定例会議Atsushi Takayasu
 
要求開発アライアンス納涼会 LT (フロント開発)
要求開発アライアンス納涼会 LT (フロント開発)要求開発アライアンス納涼会 LT (フロント開発)
要求開発アライアンス納涼会 LT (フロント開発)Atsushi Takayasu
 
20180130 設計イベント
20180130 設計イベント20180130 設計イベント
20180130 設計イベントAtsushi Takayasu
 
アジャイル勉強会 公開資料
アジャイル勉強会 公開資料アジャイル勉強会 公開資料
アジャイル勉強会 公開資料Atsushi Takayasu
 
要求開発を補完する現状分析
要求開発を補完する現状分析要求開発を補完する現状分析
要求開発を補完する現状分析Atsushi Takayasu
 
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことAtsushi Takayasu
 
Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Atsushi Takayasu
 
Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)
Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)
Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)Atsushi Takayasu
 

Plus de Atsushi Takayasu (8)

要求開発アライアンス 9月定例会議
要求開発アライアンス 9月定例会議要求開発アライアンス 9月定例会議
要求開発アライアンス 9月定例会議
 
要求開発アライアンス納涼会 LT (フロント開発)
要求開発アライアンス納涼会 LT (フロント開発)要求開発アライアンス納涼会 LT (フロント開発)
要求開発アライアンス納涼会 LT (フロント開発)
 
20180130 設計イベント
20180130 設計イベント20180130 設計イベント
20180130 設計イベント
 
アジャイル勉強会 公開資料
アジャイル勉強会 公開資料アジャイル勉強会 公開資料
アジャイル勉強会 公開資料
 
要求開発を補完する現状分析
要求開発を補完する現状分析要求開発を補完する現状分析
要求開発を補完する現状分析
 
アプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なことアプリケーション性能を管理するのに必要なこと
アプリケーション性能を管理するのに必要なこと
 
Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料Developer's Summit 夏 EnterpriseTED 資料
Developer's Summit 夏 EnterpriseTED 資料
 
Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)
Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)
Developers summit 2013 summer TED Speaker 公募資料 (設計要素マラソン)
 

Dernier

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (12)

論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

solr勉強会資料

  • 2. BTC主催 Solr勉強会 1 2 3 4 5アジェンダ ▌自己紹介 ▌1 全文検索とは ▌2 Apache Solrとは(30分クッキング) ▌3 Apache Solrの中身 ▌4 Apache Solrを利用するためのプログラム(Java編) ▌5 Apache Solr利用時のポイント 2Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 3. BTC主催 Solr勉強会 1 2 3 4 5自己紹介 高安 厚思 ▌ 活動領域・キーワード ▌ 20年にわたり、ソフトウエアエンジニアリングを適用した システム開発やコンサルティングに携わる。 ▌ 最新技術を適切に利用した、柔軟なシステム構成の構築、 品質管理を中心として技術マネージメントなどを主要テーマとして活動。 ▌ 開発方法論、アーキテクチャ設計コンサルティング、システム全体設計を 得意分野とする。 ▌ 東京電機大学非常勤講師、SQuBOK設計開発領域 検討委員、 ITSS-DS検討委員 ▌資格 ▌ ネットワークスペシャリスト ▌ アプリケーションエンジニア(現 システムアーキテクト) ▌ プロジェクトマネージャ ▌ ITストラテジスト ▌ 情報セキュリティスペシャリスト ▌ MCSE ▌ MCSD 3Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 4. BTC主催 Solr勉強会 1 2 3 4 5対外活動 最近の著書、訳書 ▌ 「システム設計の謎を解く(ソフトバンク)」 ▌ 「StrutsによるWebアプリケーション スーパーサンプル(ソフトバンク)」 ▌ 「Seasar入門[(ソフトバンク)」 ▌ 「Javaルールブック(エクスメディア) ▌ 「ITアーキテクトのためのシステム設計実践ガイド アーキテクチャ編(日経 BP)」など。 連載記事執筆 ▌ 日経SYSTEMS誌「Webアーキテクチャ再入門」 講演 ▌ SODEC ミッションクリティカル開発 ▌ 日本テクノセンター セミナー講師 ▌ UML Forum講師 ▌ 日経BP社 ITアーキテクトのためのシステム設計フォーラム 特別講演 講師 ▌ Developers Summit 2013 Summer ▌ QCon 2014 ▌ ITpro Active製品選択支援セミナー 4Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 5. BTC主催 Solr勉強会 1 2 3 4 5Solrに関する事例 ▌Solrは2012年から案件で利用 5 マルチメディアコンテンツ販売会社向け コンテンツの検索に利用 特徴として、複数単語による状況によるスコア操作 設定されているフィールドに対する順位付けの後、ページ内で並 べ替えをおこなう 公共図書館における書誌の検索 特徴として、複数単語による状況によるスコア操作 Hadoopによるインデックス作成 Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 6. BTC主催 Solr勉強会 1 全文検索とは 6Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 7. BTC主催 Solr勉強会 1 2 3 4 5全文検索とは ▌単語を検索キーとして、対象の文書を見つけ出す操作 ▌DBでも単語をまとめたテーブルに対してLike検索をすることで 実現可能? 7Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 単語数が増えた場合の性能の問題 (前方一致ならインデックスが使われる場合あり) DBMSに格納する処理、検索する処理を アプリケーションで書く必要がある。 単語にはゆれがある (スペースの有り無し、全角半角、変化など) そのため、DBMSより専用の検索エンジンミドルウェアを利用すべき。 (OracleText、Groongaなどもその対象)
  • 8. BTC主催 Solr勉強会 1 2 3 4 5転置インデックス ▌高速に検索するために、単語と文書IDを結びつけるインデックスを利 用する。このインデックスを「転置インデックス」と呼ぶ 8Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 単語 文書ID Solr 1,2,4 検索エンジン 2,6 Google 2,8 Yahoo 2,9 天気 12,13 転置インデックスによって高速な検索を実現している。 一方で、単語の切り出し方が重要となる。
  • 9. BTC主催 Solr勉強会 1 2 3 4 5検索の精度 ▌単語を入力して検索した場合に検索される文書に対して、適切かどう かという意味で精度が重要となる 9Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 正解集合検索結果 重なりあったところが 正しい検索結果の一部 本来検索されないと いけないが検索結果 に含まれない 検索されてはいけな い内容が検索された (=ノイズ) この2つの集合(円)が一致することが理想だが、難しい。 トレードオフになることが多いため、この2つのどちらを優先するかが重要
  • 10. BTC主催 Solr勉強会 1 2 3 4 5再現率と適合率 ▌前頁の内容は学問的に研究されており、検索の精度を表す指標として、 「再現率」と「適合率」がある 10Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 検索結果に含まれた正解集合(個数) 再現率= 正解集合全体(個数) 検索結果に含まれた正解集合(個数) 適合率= 検索結果全体(個数) 前頁と同様に再現率と適合率はトレードオフになることが多いため、 この2つのどちらを優先するかが重要
  • 11. BTC主催 Solr勉強会 1 2 3 4 5日本語の取り扱い ▌日本語の検索は単語の区切りが明確ではなく、転置インデックスを作 成しにくい ▌単語の区切りによって、適合率・再現率が変わるためどのようにする かが検索精度を決定する 11Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 形態素解析 辞書をもとに単語を分類し、単語を分割する (例 東京都⇒東京、都) Ngram 意味を意識せずに文字で分割する。 (Nの文字のパターンで作る) (例 東京都⇒東京、京都)
  • 12. BTC主催 Solr勉強会 1 2 3 4 5言葉のゆれへの対応 ▌自然言語を取り扱うため、表現の揺れを意識しないと 再現率が低くなる ▌標準的な表現を決めて、インデックスに格納する ▌インデックス作成、検索時に標準的な表現に変換して利用する 12Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.  旧字対応  音便対応  半角・全角  大文字・小文字  かな・カタカナ  漢字(読み仮名)・送り仮名  略語  動詞変化  単数・複数  検索対象外(助詞等)
  • 13. BTC主催 Solr勉強会 2 Apache Solrとは(30分クッキング) 13Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 14. BTC主催 Solr勉強会 1 2 3 4 5 Apache Solrの特徴 Apache Solrとは ▌ApacheのLucenceのサブプロジェクト ▌現状のバージョンは4.10.x ▌Full Javaで実装されており、Webコンテナで動作する ▌HTTPによるリクエストを実現しており、各言語から利用可能 ▌容易に導入できる割にスケールしやすい 14Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 15. BTC主催 Solr勉強会 1 2 3 4 5 Apache Solrの特徴 ファセットによる絞り込み ▌検索対象の情報に対して、グループ化して検索条件を絞り込む方法を 「ファセット」と呼ぶ ▌Solrにおいて、ファセットを利用した絞り込みは重要な役割を持つ 15Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. Solrでは、  フィールドの値  条件クエリー  範囲(数値、日付) 等を元に絞り込みの値及び対象件数を取得できる
  • 16. BTC主催 Solr勉強会 1 2 3 4 5 Apache Solrの特徴 スコアリング ▌検索結果はLuceneが持つスコアリングロジックによってスコア化され た結果順に結果が戻される (sortオプションを使うと別の結果となる) ▌スコアリングは、TF-IDFに基づいて計算される ▌このスコアリングロジックに一部カスタマイズをすることが可能 16Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. TF(Term Frequency) 出現頻度を表す指標。「多くでてくる単語がその文書の特性を表 している」という考え方に基づく。 = 対象となる単語の出現回数/文書におけるすべての単語数 IDF(Inverse Document Frequency) 単語が共通で利用されていないかを表す指標。「共通ででてくる 単語は文書の特性を表していない」という考え方に基づく。 = log((全文書数/単語が含まれている文書数)) + 1
  • 17. BTC主催 Solr勉強会 1 2 3 4 5 Apache Solrの特徴 検索単位と分散検索 ▌検索をおこなうスキーマは一つしかもてないが、一つのサーバに対し て、複数の検索集合を作ることができる ▌この検索集合の単位をコアと呼ぶ ▌複数の検索集合を取り扱うサーバ構成をマルチコアと呼ぶ ▌同一のスキーマであれば複数コアに対して検索することが可能 (分散検索) ▌同時アクセス数に対応するために、同一のインデックスをリプリケー ションできる 17Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 18. BTC主催 Solr勉強会 Apache Solr30分間クッキング Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 18
  • 19. BTC主催 Solr勉強会 1 2 3 4 5導入 ▌ダウンロードして、起動するまで 19Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 1. http://ftp.riken.jp/net/apache/lucene/solr/4.10.3/から solr-4.10.3.zip をダウンロードする 2. 何らかのツールで解凍する 3. 以下のコマンドを用いて、起動する cd example java -jar start.jar
  • 20. BTC主催 Solr勉強会 1 2 3 4 5管理コンソールの利用方法 ▌管理コンソールにアクセスする 20Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. http://localhost:8983/solr/ にブラウザでアクセスする。
  • 21. BTC主催 Solr勉強会 1 2 3 4 5デフォルトの動作とデモ環境 ▌先ほどのコマンド実行ではデフォルトの動作 21Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. SOLRHOMEはsolrディレクトリとなる。 cd example java -Dsolr.solr.home=multicore -jar start.jar デモでは、2つのコアを利用するため、マルチコアを 利用する。 SOLRHOMEはmulticoreディレクトリとなる。
  • 22. BTC主催 Solr勉強会 1 2 3 4 5一つ目のデモ ▌Wikipediaからタイトルを取得( MediaWiki API) ▌タイトルから記事本文とカテゴリを取得 ▌Solrインデックスを作成 22Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. タイトル クローラ Wikipedia 記事 クローラ タイトル ファイル index この方法は時間がかかるので、あらかじめ作成してある インデックスを利用します。
  • 23. BTC主催 Solr勉強会 1 2 3 4 5管理コンソールのデモ ▌対象のフォルダをコピーする(conf/dataともに) ▌Solrを再起動する ▌管理コンソールを起動してwikiがあることを確認する ▌Queryの例 ▌Schema Browser ▌Analysis (形態素とNgramの違い) 23Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 24. BTC主催 Solr勉強会 1 2 3 4 5二つ目のデモ ▌空間検索を利用するデモ ▌駅データ.jp(http://www.ekidata.jp/)のデータを加工して、 CSVを作成 ▌実際にインデックシングもデモします。 24Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. ※ 空間検索にはJTS Topology Suiteが必要となるためダウンロードし、 example/lib/extにjts-1.13.jar、jtsio-1.13.jar をコピーする必要があります。
  • 25. BTC主催 Solr勉強会 1 2 3 4 5インデックシング ▌station用の設定ファイルなどを配置し、Solrを再起動する (この状態ではデータは空) ▌管理コンソールから、対象のコアであるstationを選択する ▌DocumentTypeをCSVとする ▌DocumentsにCopy&Pasteする ▌Submit Documentボタンを押す 25Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 26. BTC主催 Solr勉強会 3 Apache Solrの中身 Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 26
  • 27. BTC主催 Solr勉強会 1 2 3 4 5Apache Solr アーキテクチャ ▌Apache Solrのアーキテクチャは以下の通り 27Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. インタフェース層 SolrCore searchHandler updateHandler index レスポンスライタ solr-config.xml schema.xml リクエスト レスポンス Apache Solr入門 p017 より引用・加工 クエリーパーサ
  • 28. BTC主催 Solr勉強会 1 2 3 4 5クエリーパーサ ▌検索式を解釈するパーサ ▌パーサは3種類ある ▌デフォルトはLuceneパーサ ▌ DisMaxパーサ ▌ EDisMaxパーサ ▌パラメータdefTypeで指定できる ▌検索式の指定の仕方を選択できる 28Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.
  • 29. BTC主催 Solr勉強会 1 2 3 4 5SearchHandler ▌デフォルトでも設定されており、検索(select)・更新(update)などが ある。 ▌カスタマイズすることができる(solr-config.xmlにて設定) 29Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. <requestHandler name="/query" class="solr.SearchHandler"> パラメータ指定 </requestHandler> 例 サーチコンポーネント <searchComponent name="query" class="solr.QueryComponent" /> <searchComponent name="facet" class="solr.FacetComponent" /> <searchComponent name="mlt" class="solr.MoreLikeThisComponent" /> <searchComponent name="highlight" class="solr.HighlightComponent" /> <searchComponent name="stats" class="solr.StatsComponent" /> <searchComponent name="debug" class="solr.DebugComponent" />
  • 30. BTC主催 Solr勉強会 1 2 3 4 5設定ファイル ▌Solrコアの設定ファイルは2つ ▌ solr-config.xml ▌ schema.xml 30Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. solr-config.xml  Solrコアの設定ファイル  サンプルからコピーすると動作する  キャッシュの設定やリクエストハンドラの設定などを 変更したい場合に本ファイルを変更する schema.xml  検索対象の情報をどのように格納するかを定義する設定ファイル  Create table文のようなもの  型定義や変換処理を定義できる
  • 31. BTC主催 Solr勉強会 1 2 3 4 5デモのスキーマファイル(wiki) 31Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. <field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> <field name="title" type="text_ja" indexed="true" stored="true"/> <field name="description" type="text_ja_html" indexed="true" stored="true"/> <field name="category" type="string" indexed="true" stored="true" multiValued="true"/> <uniqueKey>id</uniqueKey> ~中略 <fieldType name="text_ja" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> <analyzer> <tokenizer class="solr.JapaneseTokenizerFactory" mode="search"/> <filter class="solr.JapaneseBaseFormFilterFactory"/> <filter class="solr.JapanesePartOfSpeechStopFilterFactory" tags="lang/stoptags_ja.txt" /> <filter class="solr.CJKWidthFilterFactory"/> <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_ja.txt" /> <filter class="solr.JapaneseKatakanaStemFilterFactory" minimumLength="4"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> <fieldType name="text_ja_html" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="false"> <analyzer> <charFilter class="solr.HTMLStripCharFilterFactory"/> ~以下略
  • 32. BTC主催 Solr勉強会 1 2 3 4 5デモのスキーマファイル(station) 32Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. <field name="station_cd" type="string" indexed="true" stored="true" multiValued="false" required="true"/> <field name="station_g_cd" type="string" indexed="true" stored="true" multiValued="false" /> <field name="station_name" type="text_ja" indexed="true" stored="true" multiValued="false" /> <field name="line_cd" type="string" indexed="true" stored="true" multiValued="false" /> <field name="pref_cd" type="string" indexed="true" stored="true" multiValued="false" /> <field name="post" type="string" indexed="true" stored="true" multiValued="false" /> <field name="add" type="text_ja" indexed="true" stored="true" multiValued="false" /> <field name="point" type="location_rpt" indexed="true" stored="true" multiValued="false" /> ~中略 <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType" spatialContextFactory="com.spatial4j.core.context.jts.JtsSpatialContextFactory" distErrPct="0.025" maxDistErr="0.000009" units="degrees" /> ~以下略
  • 33. BTC主催 Solr勉強会 1 2 3 4 5変換処理 ▌再現率を高めるために、インデックス作成時及び検索時に変換をおこ なう。 33Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 検索文字列 複数単語 CharFilter Tokenizer TokenFilter 検索文字列 複数単語 単語単位 文字単位で 変換する 単語に 区切る 単語単位で 変換する  MappingCharFilter  HTMLStripCharFitler  JapaneseTokenizer  WhitespaceTokenizer  NGramTokenizer  JapaneseBaseFormFilter  CJKWidthFilter  LowerCaseFilter
  • 34. BTC主催 Solr勉強会 4 Apache Solrを利用するための プログラム(Java編) Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 34
  • 35. BTC主催 Solr勉強会 1 2 3 4 5インデックス作成 ▌管理コンソールやCurlコマンドなどによってインデックスを作成する ことは可能だが、プログラム言語を用いて作成することも可能 35Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. SolrServer server = new HttpSolrServer("http://localhost:8983/solr/wiki/"); private static List<SolrInputDocument> list = new ArrayList<>(); SolrInputDocument input = new SolrInputDocument(); input.setField("title", model.getTitle()); input.setField("description", model.getHtml()); for (String category : model.getCategories()) { input.addField("category", category); } list.add(input); if (list.size() > COMMIT_COUNT) { server.add(list); server.commit(); list.clear(); } コミットには一定コストがかかるので、 まとめて実施するのがセオリー
  • 36. BTC主催 Solr勉強会 1 2 3 4 5検索 単純なパターン(全件) 36Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. HttpSolrServer server = new HttpSolrServer("http://localhost/solr/wiki/"); @Test public void test() { SolrQuery query = new SolrQuery(); query.setQuery("*:*"); try { QueryResponse res = server.query(query); SolrDocumentList list = res.getResults(); System.out.println("かかった時間(ms): "+res.getElapsedTime()); System.out.println("検索件数: "+list.getNumFound()); System.out.println("開始位置: "+list.getStart()); list.forEach(doc -> System.out.println("取得したタイトル: "+doc.getFieldValue("title"))); } catch (SolrServerException e) { e.printStackTrace(); } } かかった時間(ms): 131 検索件数: 94503 開始位置: 0 取得したタイトル: 反転幾何学 取得したタイトル: 地球の想い~ほし の想い~ 取得したタイトル: 富里スイカロード レース大会 取得したタイトル: 南富山駅 取得したタイトル: 長尾忠綱 取得したタイトル: 大島建彦 取得したタイトル: 有本義明 取得したタイトル: 平城・相楽ニュー タウン 取得したタイトル: 大路恵美 取得したタイトル: 相澤奈美 テストプログラム 実行結果 SolrDocumentListは ArrayList<SolrDocument>を継承している。 *:*は 検索対象フィールド:検索文字列 を表す。
  • 37. BTC主催 Solr勉強会 1 2 3 4 5検索 複雑な場合 ▌検索で複雑なことを考える場合、検索式がどのようになるかを考える 必要がある ▌いきなりプログラムを書くのではなく、管理コンソールを利用して検 索式を検討してから、その検索式をAPI(SolrQuery)で マッピングする ▌検索語の処理については、単純な場合と同様 37Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.  開始位置  取得件数  ソート順  取得フィールド  フィルタクエリー  ファセット  クエリーパーサ  ハイライト
  • 38. BTC主催 Solr勉強会 5 Apache Solr利用時のポイント Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 38
  • 39. BTC主催 Solr勉強会 1 2 3 4 5検索の精度を高める ▌検索の精度を高めるために、複数フィールドを組み合わせて 検索をおこなう 39Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. 例)日本語の取り扱いとして、NGramと形態素の2つ のフィールドを利用 例)タイトルと本文のフィールドを利用 例)漢字と読み仮名のフィールドを利用 これらのフィールドの組み合わせとブーストを組み合わせて 検索の精度を高める
  • 40. BTC主催 Solr勉強会 1 2 3 4 5インデックス作成と検索 ▌インデックス作成と検索のサーバは規模が大きくなる場合、分けた方 が良い。 ▌データ件数が多い場合(1000万件が目安)、複数台数に分けて 分散検索を検討する 40Copyright (C) 2015 Atsushi Takayasu All Rights Reserved. コア1 A コア1 S コア1 A コア2 A コア1 S コア2 A コア2 S コア2 S コア‐Z A 分散検索 振り分け 振り分け コアのswap コア1 作成 コア2 作成 検索 インデックス作成 上記構成をSolrの機能として拡張させたのが「Solr Cloud」(Solr4.0~)
  • 41. BTC主催 Solr勉強会 1 2 3 4 5性能特性 ▌転置インデックスがあるため、単語が含まれている文書を 見つける等に性能が良い ▌ツリーインデックスなどではないため、DBとは異なる性能特性を持つ ▌開始位置が深くなるにつれて、取得に時間がかかるようになる (deep paging 問題) ▌分散検索をする場合は、分散検索を統合する検索サーバにメモリ上の オーバヘッドかかり、deep paging問題は深刻。 (Googleにおいても深いページは表示できない) 41Copyright (C) 2015 Atsushi Takayasu All Rights Reserved.

Notes de l'éditeur

  1. 関連ドキュメント取得(MoreLikeThisComponent)