Submit Search
Upload
Solrで日本語全文検索システムの構築と応用
•
1 like
•
8,384 views
S
Syuta Hashimoto
Follow
2017年9月9日(土)10日(日)に行われましたOSC東京での発表スライドです。 全文検索の概要やRDBMSとの連携概要を紹介しています。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 39
Download now
Download to read offline
Recommended
Apache Solr 入門
Apache Solr 入門
順平 西本
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
Shinsuke Sugaya
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
Hibino Hisashi
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
第10回solr勉強会 solr cloudの導入事例
第10回solr勉強会 solr cloudの導入事例
Ken Hirose
グラフデータベース入門
グラフデータベース入門
Masaya Dake
Recommended
Apache Solr 入門
Apache Solr 入門
順平 西本
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
LastaFluteに移行したFessとElasticsearch+ESFluteによるDBFlute環境
Shinsuke Sugaya
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
【第21回Elasticsearch勉強会】aws環境に合わせてelastic stackをログ分析基盤として構築した話
Hibino Hisashi
SolrとElasticsearchを比べてみよう
SolrとElasticsearchを比べてみよう
Shinsuke Sugaya
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
全文検索サーバ Fess 〜 全文検索システム構築時の悩みどころ
Shinsuke Sugaya
はじめてのElasticsearchクラスタ
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
第10回solr勉強会 solr cloudの導入事例
第10回solr勉強会 solr cloudの導入事例
Ken Hirose
グラフデータベース入門
グラフデータベース入門
Masaya Dake
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
Insight Technology, Inc.
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
Masaki Yamakawa
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
政雄 金森
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
オラクルエンジニア通信
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL Co., Ltd.
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
Azure Search 大全
Azure Search 大全
Daiyu Hatakeyama
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
Hideaki Aoyagi
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術
Keigo Suda
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
昌桓 李
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
tsukasamannen
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
Yahoo!デベロッパーネットワーク
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
今だからこそ知りたい!オープンソース時代に生きるクリエイターとコミュニティとビジネス(クリエイティブハント) #ゴーハント
今だからこそ知りたい!オープンソース時代に生きるクリエイターとコミュニティとビジネス(クリエイティブハント) #ゴーハント
Hiroyuki Ishikawa
Oll osc2014浜名湖(20140322)
Oll osc2014浜名湖(20140322)
Hitoshi Sugimoto
More Related Content
What's hot
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
崇介 藤井
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
Insight Technology, Inc.
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
Masaki Yamakawa
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
政雄 金森
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
オラクルエンジニア通信
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL Co., Ltd.
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Takahiko Ito
Azure Search 大全
Azure Search 大全
Daiyu Hatakeyama
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
Hideaki Aoyagi
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Naoyuki Yamada
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
貴志 上坂
ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術
Keigo Suda
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
Takanori Sejima
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
昌桓 李
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Takeshi Mikami
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
tsukasamannen
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
Shinsuke Sugaya
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
Yahoo!デベロッパーネットワーク
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
Shuji Yamada
AWSで作る分析基盤
AWSで作る分析基盤
Yu Otsubo
What's hot
(20)
Elasticsearchを使うときの注意点 公開用スライド
Elasticsearchを使うときの注意点 公開用スライド
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
[B31] LOGMinerってレプリケーションソフトで使われているけどどうなってる? by Toshiya Morita
インメモリーデータグリッドの選択肢
インメモリーデータグリッドの選択肢
Sonar qubeでちょっと楽しい静的解析
Sonar qubeでちょっと楽しい静的解析
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
Oracle Cloud Infrastructure:2023年2月度サービス・アップデート
LIFULL HOME'SでのSolrの構成と運用の変遷
LIFULL HOME'SでのSolrの構成と運用の変遷
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Elasticsearch の検索精度のチューニング 〜テストを作って高速かつ安全に〜
Azure Search 大全
Azure Search 大全
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
ElasticSearch勉強会 第6回
ElasticSearch勉強会 第6回
Azure API Management 俺的マニュアル
Azure API Management 俺的マニュアル
ストリーム処理勉強会 大規模mqttを支える技術
ストリーム処理勉強会 大規模mqttを支える技術
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
異次元のグラフデータベースNeo4j
異次元のグラフデータベースNeo4j
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Apache Airflow入門 (マーケティングデータ分析基盤技術勉強会)
Spring Boot ユーザの方のための Quarkus 入門
Spring Boot ユーザの方のための Quarkus 入門
Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
ヤフー発のメッセージキュー「Pulsar」のご紹介
ヤフー発のメッセージキュー「Pulsar」のご紹介
10分でわかる Cilium と XDP / BPF
10分でわかる Cilium と XDP / BPF
AWSで作る分析基盤
AWSで作る分析基盤
Similar to Solrで日本語全文検索システムの構築と応用
今だからこそ知りたい!オープンソース時代に生きるクリエイターとコミュニティとビジネス(クリエイティブハント) #ゴーハント
今だからこそ知りたい!オープンソース時代に生きるクリエイターとコミュニティとビジネス(クリエイティブハント) #ゴーハント
Hiroyuki Ishikawa
Oll osc2014浜名湖(20140322)
Oll osc2014浜名湖(20140322)
Hitoshi Sugimoto
【openSUSEの最新動向のみ】Solrで日本語全文検索システムの構築と応用
【openSUSEの最新動向のみ】Solrで日本語全文検索システムの構築と応用
Fuminobu Takeyama
泥臭い受託開発Dev love関西
泥臭い受託開発Dev love関西
Toshiyuki Ohtomo
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
Koji Sekiguchi
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Yuji Otani
大学図書館システムについて
大学図書館システムについて
Kunihiro Imura
Comb meet up_@kuwaccho0711_20140810
Comb meet up_@kuwaccho0711_20140810
くわっ ちょ
企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)
takanori suzuki
レガシーPHPアプリ(10年もの)を運用している話
レガシーPHPアプリ(10年もの)を運用している話
Hironobu Saitoh
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
Yuki Okada
Sola勉強会 chef入門 続編
Sola勉強会 chef入門 続編
Shiojiri Ohhara
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Takafumi ONAKA
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
Kitani Kimiya
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
Yuji Otani
ソー活(Facebook)勉強会0803
ソー活(Facebook)勉強会0803
dispa
読書体験を考える ――サービスとしての読書体験
読書体験を考える ――サービスとしての読書体験
Hitomi Yamagishi
NewsPicksにおける記事の推薦
NewsPicksにおける記事の推薦
Akira Kitauchi
【B 5】x pages extension library じゃぱ〜〜ん!コミュニティ動向2014ば〜〜ん!
【B 5】x pages extension library じゃぱ〜〜ん!コミュニティ動向2014ば〜〜ん!
Masahiko Sato
DevLove関西 - ShareWisの文化を支えるエンジニアリング
DevLove関西 - ShareWisの文化を支えるエンジニアリング
Kiyotaka Kunihira
Similar to Solrで日本語全文検索システムの構築と応用
(20)
今だからこそ知りたい!オープンソース時代に生きるクリエイターとコミュニティとビジネス(クリエイティブハント) #ゴーハント
今だからこそ知りたい!オープンソース時代に生きるクリエイターとコミュニティとビジネス(クリエイティブハント) #ゴーハント
Oll osc2014浜名湖(20140322)
Oll osc2014浜名湖(20140322)
【openSUSEの最新動向のみ】Solrで日本語全文検索システムの構築と応用
【openSUSEの最新動向のみ】Solrで日本語全文検索システムの構築と応用
泥臭い受託開発Dev love関西
泥臭い受託開発Dev love関西
情報検索の基礎からデータの徹底活用まで
情報検索の基礎からデータの徹底活用まで
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
大学図書館システムについて
大学図書館システムについて
Comb meet up_@kuwaccho0711_20140810
Comb meet up_@kuwaccho0711_20140810
企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)
レガシーPHPアプリ(10年もの)を運用している話
レガシーPHPアプリ(10年もの)を運用している話
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
Sola勉強会 chef入門 続編
Sola勉強会 chef入門 続編
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
第59回 WordBench大阪 WordPress の翻訳システム「GlotPress」を使ってみよう!
Hack+FuelPHPによるWebサービス開発
Hack+FuelPHPによるWebサービス開発
ソー活(Facebook)勉強会0803
ソー活(Facebook)勉強会0803
読書体験を考える ――サービスとしての読書体験
読書体験を考える ――サービスとしての読書体験
NewsPicksにおける記事の推薦
NewsPicksにおける記事の推薦
【B 5】x pages extension library じゃぱ〜〜ん!コミュニティ動向2014ば〜〜ん!
【B 5】x pages extension library じゃぱ〜〜ん!コミュニティ動向2014ば〜〜ん!
DevLove関西 - ShareWisの文化を支えるエンジニアリング
DevLove関西 - ShareWisの文化を支えるエンジニアリング
Recently uploaded
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Recently uploaded
(7)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Solrで日本語全文検索システムの構築と応用
1.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 Solrで日本語全文検索システムの構築と応用 ~ドキュメント検索からオンラインショッピングサイトへの応用まで~ 1 橋本 修太 日本
openSUSE ユーザ会
2.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 自己紹介 ・橋本 修太 @hashimotosyuta open系をベースとしたWeb関連の案件が経歴 (ECサイト、プロモーションサイト、CMS等) ・openSUSEとの付き合い ー
家庭用パソコンは4年程前からopenSUSEを使用 カメレオンかわいいがきっかけ ー openSUSE-jaに今年の6月から参加 ⇢ブラック企業案件管理能力の乏しい企業に居たため自分の時間が ほとんどなかったが、無事今年6月にホワイト企業へ転職成功。 空いた時間を楽しもうとopenSUSE-jaに参加。 ⇢「今年の秋に東京でopenSUSE.Asia Summitがあるんだけど、 参加しない?」との声かけを頂いて・・・・ ー openSUSE.Asia Summit実行委員やってます ⇢10月21日(土)、22日(日)は電通大に集まろう! 2
3.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 で、本題 講演の流れ 1 全文検索ってなに? 2 Solrってなに? 3 使ってみよう! 4 インデックスってなに? 5 構成や役割はこんな感じ 6 RDBMSからも検索できるよ! 7 件数取得はファセットが便利 8 ハイライトもお手の物 3 ※RDBMSの基礎知識を前提としています。ご了承下さい。
4.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 全文検索ってなに? Q:全文検索とは? A:全文章から検索します!(多分) それも複数のファイルの全文章から検索します!(本当) この、「複数のファイル」というワードが、一般に「全文検索」 「エンタープライズサーチ」といったものに対して重要になってきます。 ・ポイント1 全文検索は大体この二種類 ・シリアルスキャン型 ・インデックス型 ←今回の内容 4
5.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 全文検索ってなに? 全文検索その1 シリアルスキャン型 #
grep -r ‘hogehoge’ ⇢カレントディレクトリ以下のファイルから「hogehoge」って文字列の ある行を取り出してね ー 利点 ・手軽 ー 欠点 ・遅い ・テキストファイル以外は検索が難しい(Word等) ・検索ノイズが入る(後述) 5
6.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 全文検索ってなに? 全文検索その2 インデックス型 あらかじめ検索するであろう単語等の索引(インデックス)を作成し、 それを使って検索 ←ここを掘り下げていきます ー
利点 ・早い ・インデックス化できればWord等も検索可能 ・検索ノイズが減る(方法がある) ー 欠点 ・システムを構築する必要がある ・検索したいファイル等のインデックス化が必要 6
7.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 全文検索ってなに? まずは、ユースケース 7 こんな配置の資料から「openSUSE」で検索したい!
8.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 全文検索ってなに? シリアルスキャン型なら・・・ 8 #
grep -r ‘openSUSE’ files_A ① ② ③ # soffice files_B/LibreOffice Writer.odt → Ctrl + F ④ # soffice files_B/LibreOffice Calc.ods → Ctrl + F ⑤ # okular files_B/pdf.pdf → Ctrl + F ⑥ ① ② ③ ④ ⑤ ⑥ こんな感じで逐次検索
9.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 全文検索ってなに? インデックス型なら・・・ 9 #
curl ‘http://localhost:8983/solr/techproducts/select?indent=on&q=*:o penSUSE&wt=json’ ① ←ここを掘り下げていく ① インデックスを予め作成 検索しやすく構築されている インデックスから一発検索
10.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 2 Solrってなに? Solrとは ・インデックス型の全文検索システム ・読み方は そーらー (そらーと発音する人も多い) ・Apache
Lucene(アパッチ ルシーン)のサブプロジェクト。 →Apache Luceneは全文検索ライブラリ Solrはこれを利用している。なのでもちろんオープンソース ・javaベース solrjという、これから説明する事を実装できるjavaライブラリもある。 ・ただし、アクセスはWebAPIっぽく出来るので、 クライアントは何でもOK! ・Elasticsearch(エラスティックサーチ)という競合がある 比較等は先達がいらっしゃいますので、そちらの情報をご覧ください。 10
11.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 3 使ってみよう! さっそく構築!(ローカル検証用) 1 JVMをインストール
javaは1.8以降 (Leap 42.3なら既にインストール済) 2 Solrをダウンロード Solr公式ページのダウンロードより可能 現在バージョンは6.6.0 http://www.apache.org/dyn/closer.lua/lucene/solr/6.6.0 Zipファイルに一式入っています 3 2でダウンロードしたZipファイルをディレクトリに展開 # unzip solr-6.6.0.zip そして移動 # cd solr-6.6.0 11
12.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 3 使ってみよう! 12 起動、コア作成、インデックス化 4 #
bin/solr start ←まずはSolrを起動(コアもインデックスも無い) 5 # bin/solr create -c mycore ←「mycore」という名前でコア作成 6 # bin/post -c mycore /home/hashimoto/doc/* ←「mycore」にファイルをインデックス化 「bin/post」がインデックス化を自動処理してくれます ・ ・ ・ (だらだらとインデックス化ログが流れる) なんと 完 了 ※ちなみにSolrサイトには五分で始められるクイックスタートサンプル もあります。(いきなり分散冗長構成が体験できたりする)
13.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 3 使ってみよう! 重要な単語 ・コア RDBMSのスキーマに相当。インデックスのフォーマット定義や クエリーの設定等を保持。大雑把に言ってしまうと、検索エンジン そのもの。 ・スキーマ定義 Solrではインデックスのフォーマットをスキーマと呼びます。 RDBMSのテーブルのようなもの。 ・インデックス 検索対象用のファイルをスキーマ定義に従ってインデックス化した データ 13
14.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 3 使ってみよう! Solrはadmin
uiを標準装備 起動後にブラウザで http://localhost:8983/solr/ にアクセスすると・・・ 14
15.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 3 使ってみよう! 「mycore」というコアが登録されている 15 ちゃんと「mycore」が登録され ている
16.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 3 使ってみよう! 「mycore」の「Query」から検索も可能 16 ①ここがQuery ②検索語入力 ③検索語実行 ④結果がずら〜
17.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 4 インデックスってなに? 17 ここでインデックスについて これの事 中身は、各ファイルの内容の単語と ファイル名の対応(索引)
18.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 4 インデックスってなに? 18 インデックスの中身 (インデックスのイメージ) なので、「openSUSE」で検索すると、すぐに「text1.txt」と「LibreOffice
Wirter.ods」にあ るよ、と返答がある 単語 単語のあるファイル openSUSE text1.txt LibreOffice Writer.ods カンファレンス text2.txt pdf.pdf ・・・ ・・・
19.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 4 インデックスってなに? 19 インデックスの定義=スキーマ 構成はスキーマと呼ばれています スキーマで定義する事は以下の通り ・フィールド RDBMSで言う所のカラム フィールドタイプも指定する この中に文章は単語に分解されたりして登録されていく ・フィールドタイプ フィールドの定義 数値だったり文章だったり、 形態素解析するしないを定義 ・ダイナミックフィールドや コピーフィールドとかも・・・・(今回は省略)
20.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 4 インデックスってなに? 20 インデックス化 インデックス化とは、「検索対象のファイルの内容」を、「フィールド 定義に合わせてフィールドに登録する」事 ちなみに・・・ フィールドに登録する時に、検索しやすさを考えて あれこれ処理を行っています (このあれこれ処理も、フィールドタイプの定義で 設定します)
21.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 4 インデックスってなに? 21 あれこれ処理? ・例えば英文なら、全部小文字に変換する、とか。 「linux」も「Linux」も「LINUX」も、「linux」で検索したい → 「linux」も「Linux」も「LINUX」も、「linux」と登録 しておけばOK。 検索時も同じで、「linux」も「Linux」も「LINUX」も、 「linux」として検索すればOK。 ・日本語なら、品詞基準で分割、とか。 「私は東京都で開催されるアジアサミットに行きます。」 →「私-は-東京-都-で-開催-さ-れる-アジア-サミット-に-行き-ます」 これならば、「東京」ならヒットするけれども「京都」で検索したら ヒットしない 大量ドキュメントから検索した時のノイズ(期待していない結果) が減る 形態素解析と言う、奥のふか〜〜い技術
22.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 5 構成や役割はこんな感じ 22 こんぽ〜ねんと図 ①検索 ④検索結果 ①データ登録 ②インデックス化 ②問い合わせ ③問い合わせ結果 Solrに対してはREST-apiを使用
23.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 5 構成や役割はこんな感じ でもって、こちらが物理的な構成 23 solr-6.6.0/
server/ ・ ・ ・ solr/ ・ lib/ ・ conf/ mycore/ ・ ・ ・ data/ managed-schema solrconfig.xml ・ ・ ・ core.properties 我らがmycore スキーマ定義ファイル 検索エンジン設定ファイル インデックス等格納ディレクトリ
24.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 5 構成や役割はこんな感じ managed-schema ・スキーマ定義(フィールドやフィールドタイプ)が記述されている ファイル。なんと、フィールドはREST-apiで定義出来るため、この ファイルを編集する必要がない。というか、編集しないでね、と書か れている。(しかしフィールドタイプはまだREST-apiでは定義できず、 このファイルを直接編集する必要がある。) ・以前はスキーマ定義は<schema.xml>というファイルで管理されていて、 フィールドもフィールドタイプもこのファイルを直接編集していた。 (今でも直接編集に切り替えて使っている人はいます。) 物理的な構成と言えば・・・・ プロダクト用に<install_solr_service.sh>という、インストール用ス クリプトが添付。 /opt/solr/にエンジン、/var/solr/にデータを配置してくれたり、service のスクリプトをインストールしてくれたりする。 24
25.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! セットアップ完了!それでは良い検索ライフを!! 25 え?俺のショッピングサイト、 MySQLにデータ入ってんだけど・・・・ 商品説明のlike検索とか重いんだよね。 お、おう・・・
26.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! DataImportHandler 実は、SolrにはRDBMSやその他のデータソースから 検索出来るようにする(インデックス化する)仕組み が存在します。 「全文検索」という観点から言うと、オンラインショッピングサイトでの 商品検索、とか、そういう限られたイメージを持ってしまいますが、 これから説明する「ファセット検索」や「ハイライト」等の機能も使える のでかなり優秀です。 26
27.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! 27 RDBMSを使う時のこんぽ〜ねんと図 ①検索 ④検索結果 ①データ登録 ②インデックス化 ②問い合わせ ③問い合わせ結果 ・・・
RDBMS
28.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! 論理構成 2828 descriptionから 「geeko」を検索 検索結果 「nameが openSUSEのデー タにあるよ!」 スキーマのフィールドとRDBMSのカラムを対応 させてインデックス化 RDBMS スキーマ フィールド
名前=id フィールド 名前=name フィールド 名前=description id name description 1 openSUSE geekoがかわいい!
29.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! スキーマのフィールドとRDBMSのカラムを 対応させてインデックス化 ・RDBMSからのデータ抽出にはSQLを使用。 なので、正確にはスキーマのフィールドと「SELECTの結果」を 対応させてインデックス化。 ・対応させる時、名前は一致していなくても大丈夫。 設定ファイルで名前を指定出来ます。 つまり、好きなSQLの結果をフィールドに対応させられる(検索出来る) 29 夢が膨らむ!
30.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! 設定はちょっとだけ面倒 ●
RDBMSアクセス用コネクタを配置 →server/lib配下にJDBCコネクタを配置 ● フィールド定義 →次ページにて ● solrconfig.xml(コアの設定ファイル)に以下を設定 ・DataImportHandlerのライブラリ読み込み ・DataImportHandler使うよ宣言と、その時に使用する設定ファイル指定 *a ● DataImportHandler用設定ファイル(*aで指定したファイル) ・RDBMS接続設定 ・フィールドとSQLの対応 30 ここにインデックス用SQLや、 SELCET結果とフィールドの対応等を記述 概要となります。 具体的な設定の記述等は別途 資料を参照下さい。
31.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! フィールド定義 手っ取り早いのはadmin
uiでスキーマ定義 31 ①(みにくいです が) 「Schema」を選択 ②「Add Field」を選 択 ③各種設定 し、下部の 「Add Field」を クリック (フィールドタ イプはtext_ja 辺り)
32.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 6 RDBMSからも検索できるよ! 設定は完了! いざ、取り込み いつも通りREST-api http://localhost:8983/solr/mycore/dataimport?command=full-import 32 我らがmycore
余談 URI「/dataimport」はsolrconfig.xmlで requestHandlerを定義する時に指定 する これだけで、取り込みは完了!admin uiからの検索等が行える。 実運用に向けて、差分インポートの設定やインポートタイミングの設計 を行う。(定期的にインデックス化処理するか、DBアップデート時にイン デックス化処理するか、等々)
33.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 7 件数取得はファセットが便利 ファセット検索 グルーピングして件数を数える機能です。 例えば、こんな感じでtypeの件数取得 33 id
name description type 1 docker コンテナ型仮想環境 virtualization 2 emacs 多機能エディタ editor 3 vim 多機能エディタ editor 4 chrome ブラウザ browser 5 firefox ブラウザ browser 6 sleipnir ブラウザ browser "facet_counts":{ "facet_queries":{}, "facet_fields":{ "type":[ "virtualization",1, "editor",2 “browser”,3]}, "facet_ranges":{}, "facet_intervals":{}, "facet_heatmaps":{}}
34.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 7 件数取得はファセットが便利 ファセット検索のREST-api 方法は、ファセット検索用のフィールドがあるので、それを指定するだけでOK http://localhost:8983/solr/mycore/select?facet=on&facet.field=type&indent=on&q=* :*&wt=json 通常の検索と組み合わせれば、当然、通常の検索結果に対してファセット検索(件数取 得)が可能 範囲の指定等、ちょっと複雑な件数取得も可能 34 ・facet=on ファセット検索を有効に ・facet.field=type 「type」フィールドでグルーピング(件数取得)
35.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 8 ハイライトもお手の物 ハイライト 検索結果とは別に、ハイライト設定した結果を別途取得する事も出来ます。 例えばこんなデータで、desciptionから「オープンソース」で検索 35 id
name description 1 openSUSE openSUSE プロジェクトとは、あらゆる場所での Linux の利 用を目指す世界的な取り組みです。openSUSE は、世界的な フリー/オープンソースソフトウェアコミュニティの一部として、 オープンに、透明に、友好的に協力し合い、世界最高の Linux ディストリビューションの一つを創っています。
36.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 8 ハイライトもお手の物 ハイライト検索を実行すると 36 "highlighting":{ "1":{ "description":["openSUSE
プロジェクトとは、あらゆる場所での Linux の利用を目指す世界的な取り組みです。openSUSE は、世界的な フリー/<em>オープンソース</em>ソフトウェアコミュニティの一部"]}} openSUSE プロジェクトとは、あらゆる場所での Linux の利用を目指す世界的な取 り組みです。openSUSE は、世界的なフリー/オープンソースソフトウェアコミュニティ の一部として、オープンに、透明に、友好的に協力し合い、世界最高の Linux ディス トリビューションの一つを創っています。 「オープンソース」で検索すると<em>タグで囲われる また、ヒットした所の前後一定数で切り取りだす
37.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 8 ハイライトもお手の物 ハイライト検索のREST-api 検索はいつもどおりURLにパラメータ指定 http://localhost:8983/solr/mycore/select?hl=on&hl.fl=description&indent=on&q=des cription:%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%82%BD%E 3%83%BC%E3%82%B9&wt=json 37 ・hl=on ハイライトオン ・hl.fl=description
ハイライト用にdescriptionのフィールドを指定 「オープンソース」で検索 REST-apiなので、URLエンコードしてます
38.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 8 ハイライトもお手の物 ハイライトの設定 ・solrconfig.xmlに、「searchComponent」で設定されている ・フィールドに幾つか設定が必要 a
storedという、取得したデータを保持する項目をtrueに b フィールドタイプは解析を行うものを指定 ハイライトは幾つかの設定の組み合わせが可能。 初期設定でも有用ですが、設定をする事でより細かい制御が可能 hl.method hl.qparser hl.requireFieldMatch hl.usePhraseHighlighter ・ ・ ・ 38
39.
Solrで日本語全文検索システムの構築と応用 #OSC東京 2017/09/09 1 Solrはインデックス型全文検索システム 2 フィールド定義はスキーマと呼ばれる これがインデックスの構成を決める 3 RDBMSのデータも検索可能 4 ファセット検索、ハイライトも簡単 8 ハイラそれではよい検索ライフを!! Have
a lot of fun... 39 本日のまとめ
Download now