Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
シラサギ勉強会 - Elasticsearch
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
NAKANO Hideo
September 15, 2017
Programming
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
シラサギ勉強会 - Elasticsearch
全文検索とはなんぞやから入って、シラサギでのElasticsearchの応用例まで広く浅く解説。
NAKANO Hideo
September 15, 2017
More Decks by NAKANO Hideo
See All by NAKANO Hideo
自治体向けのCMS+グループウェア+ウェブメール=『シラサギ』のご紹介
sunny4381
0
570
Google AMPとPWAをさらっと紹介
sunny4381
0
230
Other Decks in Programming
See All in Programming
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
310
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
210
『コードを書く以外の』エンジニアリング〜課金基盤移行プロジェクト推進のためのTips4選
yuriko1211
0
590
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
350
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
860
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
190
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
150
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
150
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
260
20260722_microCMSで考える、AI時代のコンテンツ運用設計
yosh1
0
380
Android CLI
fornewid
0
210
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.2k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
450
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Darren the Foodie - Storyboard
khoart
PRO
3
3.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
320
The browser strikes back
jonoalderson
0
1.5k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.3k
Being A Developer After 40
akosma
91
590k
Transcript
http://www.web-tips.co.jp/ Copyright © 2014- Web Tips Co.,Ltd All Rights Reserved.
シラサギ勉強会 Elasticsearch 2017/9/15 株式会社ウェブチップス 中野 英雄
Elasticsearchとは? 2
3 全⽂検索サーバーとして知られていますが 全⽂検索サーバーって?
4 データベースの⼀つである NoSQL データベースに分類されるデータベース
ACID特性とCAP定理 5
6 詳しくは: http://masawan-guitar.hatenablog.com/entry/2016/08/14/163447
7 ElasticsearchはCP型のデータベース ただし、 https://discuss.elastic.co/t/elasticsearch-and-the-cap- theorem/15102/3によると、not fully Pでnot fully Aでnot fully
Cであ る
転地インデックス 通常のDBと全⽂検索を分かつもの 8
9 だいたいのDB(MongoDBを含む) B-Treeインデックス 全⽂検索 転地インデックス
10 http://gihyo.jp/dev/serial/01/search-engine/0003 ⽐較的以下のページの解説が分かりやすい
⾔語処理 全⽂検索を特徴づけるもの 11
揺れ • 英語 • 単複/3⼈称: man ⇔ men • 現在と過去:
run ⇔ ran • ⽇本語 • 半⾓と全⾓ • アラビア数字と漢数字 • 送り仮名: ⾒積もり ⇔ ⾒積り⇔ ⾒積 • フォルダーとフォルダ • 略語: ⾃販機 ⇔ ⾃動販売機 12
インデックス時の正規化 vs 検索時の展開 • インデックス時の正規化 • DB格納前に「正規語」に統⼀して格納する • アカデミックにいうなら、⾒出し語(lemma)といった⽅がいいけど… •
検索時の展開 • 検索時に可能な組み合わせでOR検索する • 例: 「⾒積もり OR ⾒積り OR ⾒積」で検索 • どちらがいいかはケース・バイ・ケース • 例: マツケン 13
フレーズ検索 • 形態素解析 • ⽇本語形態素解析により「東京」「特許」「許可局」に分割される。 • このため「特許」で検索した際、「東京特許許可局」を含む⽂書が ヒットする(再現率UP) • では「東京特許許可局」を検索すると?
14
フレーズ検索 15 東京 AND 特許 AND 許可局?
フレーズ検索 16 「東京」と「特許」が隣接し、「特 許」と「許可局」が隣接する⽂書に マッチする これを「フレーズ検索」と呼ぶ
フレーズ検索 • 隣接って? • 必ずしも隣り合っている必要があるかは、全⽂検索エンジンの設定に よる。 • 例えば「レディーガガ」で検索した場合に「レディー・ガガ」にマッ チするように、1つ⾶ばしぐらいなら隣接しているとみなす検索エンジ ンの⽅が多い。
17
Elasticsearch 18
公式情報 • 公式ページ • https://www.elastic.co/products/elasticsearch • Support Matrix • https://www.elastic.co/jp/support/matrix
• ※InstallationにはOracle JDK version 1.8.0_131の利⽤が推奨されている • Getting Started • https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started.html • GitHub • https://github.com/elastic/elasticsearch • License • Apache License 19
クラスタ構成 20 https://gist.github.com/yano3/3f5abc9eba0c1ad6a0508056961b273c
SHIRASAGIでのElasticsearch の設定 21
⽇本語設定 項⽬名 英語名 例 形態素解析 kuromoji ⽂字の正規化 icu_normalizer ㌀ →
アパート、アパート → アパート 踊り字の正規化 kuromoji_iteration_mark 時々 → 時時、こゝろ→こころ 活⽤形の正規化 kuromoji_baseform 飲み → 飲む ※連⽤形 → 終⽌形 助詞などの除去 kuromoji_part_of_speech 寿司がおいしいね → 「寿司」「おいしい」だ け残して、「が」と「ね」を削除 頻出語句で検索に 有⽤でない⾔葉を 除去 ja_stop これ、それ、あれ、しかし、私 漢数字の正規化 kuromoji_number ⼀〇〇〇(漢数字のゼロ)→ 1000 ⻑⾳の除去 kuromoji_stemmer プリンター → プリンタ 22 http://qiita.com/shin_hayata/items/41c07923dbf58f13eec4
添付ファイル • Ingest Attachment Plugin • https://www.elastic.co/guide/en/elasticsearch/plugins/master/ing est-attachment.html • 内部ではApache
Tikaを使ってテキストを抽出 23
24