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
Drupal Elasticsearch Connector の日本語検索の質を高める
Search
Koji Kawamura
October 06, 2021
Technology
0
240
Drupal Elasticsearch Connector の日本語検索の質を高める
2021-10-06 に Acquia でぶちゃんねるで発表した資料です。
Koji Kawamura
October 06, 2021
Tweet
Share
More Decks by Koji Kawamura
See All by Koji Kawamura
ESRE とか ELSER とか RRF ってナニ!? もろもろ理解してスッキリしよう
ijokarumawak
1
800
Other Decks in Technology
See All in Technology
深層学習と3Dキャプチャ・3Dモデル生成(土木学会応用力学委員会 応用数理・AIセミナー)
pfn
PRO
0
460
駆け出しリーダーとしての第一歩〜開発チームとの新しい関わり方〜 / Beginning Journey as Team Leader
kaonavi
0
120
[IBM TechXchange Dojo]Watson Discoveryとwatsonx.aiでRAGを実現!座学①
siyuanzh09
0
110
ABWGのRe:Cap!
hm5ug
1
120
なぜfreeeはハブ・アンド・スポーク型の データメッシュアーキテクチャにチャレンジするのか?
shinichiro_joya
2
490
20250116_JAWS_Osaka
takuyay0ne
2
200
Evolving Architecture
rainerhahnekamp
3
250
.NET AspireでAzure Functionsやクラウドリソースを統合する
tsubakimoto_s
0
190
あなたの人生も変わるかも?AWS認定2つで始まったウソみたいな話
iwamot
3
860
Accessibility Inspectorを活用した アプリのアクセシビリティ向上方法
hinakko
0
180
2024年活動報告会(人材育成推進WG・ビジネスサブWG) / 20250114-OIDF-J-EduWG-BizSWG
oidfj
0
230
PaaSの歴史と、 アプリケーションプラットフォームのこれから
jacopen
7
1.5k
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
VelocityConf: Rendering Performance Case Studies
addyosmani
327
24k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
GitHub's CSS Performance
jonrohan
1030
460k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
113
50k
The Cult of Friendly URLs
andyhume
78
6.1k
How to Ace a Technical Interview
jacobian
276
23k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
230
52k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
A Tale of Four Properties
chriscoyier
157
23k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
Transcript
Drupal Elasticsearch Connector の 日本語検索の質を高める Koji Kawamura, Education Architect Oct
6, 2021
適切に権限を絞ったユーザを利用する "elastic" はスーパーユーザ! Elasticsearch drupal_* その他 drupal-connector
Elasticsearch に ロールを作成 クラスタ稼働状況の monitor 権限と 特定インデックスの操作の み許可
Elasticsearch に ユーザを作成 先程作成したロールを付与 したユーザを作成 パスワードに # があると Drupal から接続時にエ
ラーになるので注意 (内部で parse_url 関数を 利用しているため)
Drupal から Elasticsearch へ セキュアに接続 Elasticsearch 側のセキュ リティ設定をするのは大前 提。 Connector
の設定画面で 設定したパスワードはその まま閲覧できてしまう 最低限の権限でアクセス
インデックス名 インデックス名のプリフィッ クスをつけておくと他のイン デックスと差別化しやすい
Elasticsearch で全文検索 転置インデックスを作っている Elasticsearch drupal_* drupal-connector pages https://www.book-editing.com/why-book-indexing/ 本の末尾にある索引のような、転置インデックス
POST _analyze { "analyzer": "standard", "text": ["可愛いしいたけを試してみてください。"] } 検索漏れは少ないが、ノイズが大量発生。 「たけのこ」でもヒットするでしょう。
デフォルトの日本語解析
POST _analyze { "analyzer": "kuromoji", "text": ["可愛いしいたけを試してみてください。"] } 「しいたけ」で検索した場合のみヒットできる。 ノイズが減る。
Kuromoji は Elasticsearch のプラグイン。 形態素解析 kuromoji
Elasticsearch インデックスのカスタマイズ Drupal 側で作成する前に、事前に作成しておく Elasticsearch drupal_* drupal-connector pages Drupal 側から連携する前
に明示的に作成 1 2
インデックスを事前作成 PUT drupal_allcontents { "mappings": { "properties": { "_language": {
"type": "keyword" }, "body": { "type": "text", "analyzer": "kuromoji" } }, "id": { "type": "keyword" } } } 事前に作成しておけば、 Drupal の設定画面から指 定できない設定も行える
kuromoji でノイズを 減らすことができた! 可愛いしいたけを試してみてください。 でも、 ヒットしない
kuromoji_readingform で 読み仮名検索 可愛いしいたけを試してみてください。 doc #1 語 ドキュメント ID シイタケ
1 本文も検索語もカタカナで 解析してあげる
記事の本文を複数の方法でインデックス body を body と body_kana の二つの方法で索引付け
ユーザ辞書 kuromoji では辞書を使っ て単語の分割をしている 辞書に載っていない単語、 新語は検索もれが発生し てしまう そこでユーザ辞書! kuromoji_ dictionari
es.zip vi dictionaries/userdict_ja.txt 平茸,平茸,ヒラタケ,カスタム名詞 zip -r kuromoji_dictionaries.zip dictionaries
同義語 (シノニム) 同じものだけど 別の呼び方 ミルク、牛乳
おまけ Connector が発行するクエリってどんなの? Slow query でログ出力して観察
Elastic App Search という選択肢も クエリログの分析 ユーザが検索したキーワードで検索結果がヒッ トしない、もしくはクリックされない場合、検索エ ンジンとして改善が必要 関連度チューニング 複数の検索語を入力する際、全て含む
AND いずれか OR 3つ以上の場合少なくとも 1つ、 曖昧検索する?などを一つのスライダで制御可 能 クローラ Web サイトの自動巡回クローラがついに GA! より簡単にサイト内検索を提供可能に https://www.elastic.co/jp/app-search/
Elastic 公式トレーニングの紹介 体系的に学びたい方は是非 どんなコース?受講方法は? Elastic 公式トレーニングサービスのご紹介 https://www.elastic.co/jp/webinars/intro-to-elastic-training 定期開催 Elastic 公式トレーニングスケジュール
https://www.elastic.co/jp/training/schedule?timezone=Asia+-+Tokyo
Q&A Thank you!