第36回Elasticsearch勉強会 2020.06.18

概要

コロナで中止になっていた勉強会が久々に再開された
第36回Elasticsearch勉強会 2020.06.18 #elasticsearchjp

前の勉強会からここまで変わったのかと Trainingが無料で受けられるのはチャンスかなと

スクリーンショット 2020-06-18 19.32.29

※メモレベルで記載されているので、聞き間違ってたらすみません

1.Elastic社 河村 康爾 さん @Ijokarumawak「LT: Elastic スタック で Apache NiFi をオブザーブしてみたい vol.1」

資料:Elastic スタック で Apache NiFi をオブザーブしてみたい vol.1

nifi をAPMで監視
https://github.com/apache/nifi

nifi フローベース →nodeRedみたいなもの
こういうのをフローベースプログラミングといった気がします
Flow-based programming wiki

構成はこんな感じでした

スクリーンショット 2020-06-18 19.38.01

APMは、-javaagentを付与すれば良いのでアプリ起動前にJAVA_OPTSとかに設定すれば動きます

ElasticのAPMはSpringの「@Scheduled」を付与すると計測してくれるらしいので、ソースを書き換えて付与して独自ツールは計測したらしい

7.7よりサービスマップが追加された!! → NewRelicさんとか他のAPM使っているとここが役に立ったりするので素晴らしいなと

2. kaiba さん @kaiba
「公式 token/char filters 総ざらい(ビギナー向け)」

「token/char filters」のよく使えそうなのを教えてくれる!

filterとは? 余計なものを省くのではなく、加工する意味もある
Mapping? 文字の変換をする char filters

CJK width  半角を全角変換
Uppercase 小文字にする
ICU Normalization Token Filter 全角半角統一
などなど

Elasticsearch token/char filters というスプレッドシートでまとめた秘伝の書を頂いた、こちらに全てまとまってます

3.株式会社LegalForce 打田 智子さん @moco_beta
「Elasticsearch 7 クラスタ on GCP 事始め - Containers on GCE と GKE に
トライ」

資料:Elasticsearch 7 クラスタ on GCP 事始め - Containers on GCE と GKE -
GCPで使用するには?4つある

・Elasticsearch Service (Managed Service)
・GKE上に立てる
・Conteiners on GCE
・GCEのVMに直接(Elasticsearchのコンテナがある)

色々(社内事情・セキュリティ)あって、GKEとGCEを検証した

GCE:master3台、data3台(インデックスデータは、BootDiskにある)
→運用性は物足りなさはあるがそんなものかくらいだったらしい
GKE:master3台、data3台
→ymlが2000行近くあって確認するの大変らしい 特に問題なかった

詳しくはこっち→ 
Elasticsearch 7 クラスタを Containers on GCE で立ち上げる: (Managed Instance Group 編)
Elasticsearch 7 クラスタを GKE で立ち上げる

GCEとGKEどちらでも大丈夫そうだなと → 詳しくは資料

Elastic Cloud on Kubernetesもあるよというコメントがあった

4.大谷 純さん @johtani
「KuromojiとSynonymとパッチ」

KuromojiとSynonymとパッチ(LUCENE-9123) 資料

おさらい
Analyzerとは文字を区切ってくれる Charfilter → Tokenizer→ Tokenfilterと分解する
Kuromoji→Luceneの日本語形態素解析ライブラリ
Synonim 類義語設定ができる(意味通りですが)
Synonym token filter

LUCENE-9123
日本語でSynonimを設定すると良く「position increment =! 1」というエラーが発生する 

「株式会社」を入れると、
株式会社:position → 0
株式:position → 0
会社:position → 1

となるためである。

Kuromoji Tokenizerのmodeをnormalにするとエラーが直るのだが
「株式」「会社」で検索できない

LUCENE-9123の修正で、Elasticsearch7.9.0より直る!
https://issues.apache.org/jira/browse/LUCENE-9123

7.8まで →mode:normal
7.9     →discard_compound_token:true
8.0         →discard_compound_tokenはdefautでtrueらしい(lucene 9, Es 8 から)

→細かくヒットされるが、スコアリングはそこまで影響ないらしい

LGTMされたpullリクエスト
Expose discard_compound_token option to kuromoji_tokenizer #57421

感想

オンライン勉強会は、普段の勉強会と違ってリアクションを積極的に文字で取らないと登壇者を不安にさせることがわかった

久々に検索系の何かやりたいなと思わせるような勉強会だった。
個人的にはGCPやAPMは使ったりするので興味がそそられた。

Elasticsearchのアップグレード情報とか、社内ではまとめてるですが今後こっちのブログに書こうか悩んでます

この記事が気に入ったらサポートをしてみませんか?