ファイル置き場 日本Cassandraコミュニティ

0
1
36
1 year ago
Preview
Full text
Lucandra を使ってみる 〜第 2 回〜 Solandra を動かすまで 2010/8/19 株式会社ぐるなび 佐藤 史彦 Agenda ➲前回までのおさらい Solandra を動かす 今回のまとめ 前回までのおさらい ➲Lucandra とは? Index 構成 特徴 注意点 Lucandra とは ?Cassandra ベースの Lucene バックエンド Lucene の Index を Cassandra にストア (IndexWriter/Reader の Cassandra 対応 )対応する Lucene のバージョンは 2.9.1 Cassandra は 0.6 系 Lucene Java Application 検索 Hits Hits Document Document Document Document Document Document インデックス作 成 QueryParser QueryParser Analyzer Analyzer Query Query Document Document Document Document Document Document Field Field Field Field Field Field IndexSearcher IndexSearcher IndexWriter IndexWriter IndexReader IndexReader Disk Lucene Lucene Index Index Analyzer Analyzer Lucandra Java Application 検索 Hits Hits Document Document Document Document Document Document インデックス作 成 QueryParser QueryParser Analyzer Analyzer Query Query Document Document Document Document Document Document Field Field Field Field Field Field IndexSearcher IndexSearcher IndexWriter IndexWriter IndexReader IndexReader Cassandra Lucene Lucene Index Index Analyzer Analyzer Index 構成 Keyspace :Lucandra ColumnFamily :Document Key :インデックス名のハッシュ +ドキュメント ID Column Name :フィールド名 Value :フールド値 SuperColumnFamily :TermInfo Key :インデックス名 +フィールド名 )のハッシュ +フィールド名 +単語 SuperColumn :ドキュメント ID インデックス生 成時のオプショ ンによって、作 られるカラムが 決まる (Lucene と同じ )Column Name :Frequencies Value :当該文書中の当該単語の出現頻度 Column Name :Norms Value :当該単語における文書のノルム Column Name :Offsets Value :当該文書中の当該単語のバイト位置オフセッ ト Column Name :Position Value :当該文書中の当該単語の出現位置 特徴 ➲Lucene API がほぼそのまま利用可能 Index のスケーラビリティは Cassandra 依 存 Partitioner に OrderPreservingPartitioner を 使う(と、フル機能が使える) できること 次スライド README より Lucandra でできること 1 Real-Time indexing (documents become available almost immediately) 2 3 4 5 6 7 8 No optimizing Search Sort Range Queries Delete Wildcards and other Lucene magic Faceting/Highlighting 4,5,7 -RandomPartitioner では不可 注意点 ➲RandomPartitioner ではできないことがあ る (レンジスキャンを必要とするもの) OrderPreservingPartitioner だと、単一イン デックスで大量のドキュメントを扱う場合 にデータが偏りがちになると予想される →InitialToken の調整で対応? 注意点 ➲Analyzer で複数単語の Query が生成される もの( N-gram など)を使用する場合 は、 TermInfo の Position カラムを作成する 必要がある(ここは Lucene とは違うとこ ろ) 指定例: doc.add(new Field("name",name, Store.YES, Index.ANALYZED, Field.TermVector.WITH_POSITIONS))Solandra 動かす ➲Solandra とは ?ビルド 設定 起動 データストア 検索 Solandra とは ?Cassandra ベースの Solr バックエンド Solr の Index を Cassandra にストア (IndexWriter/Reader の Cassandra 対応 )対応する Solr のバージョンは 1.4.0 Solandra とは ?Solr が Lucene ベースの検索サーバであるよ うに、 Solandra は Lucandra がベースとい うだけ ちなみに、 Solr の特徴は -XML/HTTP や JSON, Ruby, Python の API -検索ヒット箇所のハイライト機能 -ファセット検索 -キャッシュ機能 -レプリケーション機能 -Web 管理インタフェース ビルド lucandra.jar に solandra も含まれているの で、 Lucandra をビルドしていれば必要なし $tar xztf tjake-Lucandra-c632677.tar.gz $cd tjake-Lucandra-c632677 $ant lucandra.jar solr-example/ に Solr(+Jetty) 一式があります $cd solr-example 設定 (solrconfig) solrconfig.xml にて、 Cassandra(Thrift) の設定 をします $vi solr/conf/solrconfig.xml 1) SolandraIndexWriter の部分 str name="cassandraHost">192.168.56.101 int name="cassandraPort">9160 bool name="cassandraFramed">false updateHandler> 設定 (solrconfig) 2) SolandraIndexReaderFactory の部分 str name="indexName">solrshopsearch str name="cassandraHost">192.168.56.101 int name="cassandraPort">9160 bool name="cassandraFramed">false indexReaderFactory >この通り、 Writer/Reader に指定するクラス が Solandra 固有のものになっていることが わかります 設定 (solrconfig) ここでは Cassandra 接続の設定が効いているかどうか確認す るために、単一ノードだがあえて外部サーバの Cassandra を使用した 実際、エラーが出て結構はまってしまったのだが Lucandra では設定ホストに初回接続後、 describe_ring で取得した end-point に対してランダムに接続する実装が含まれている (lucandra.CassandraProxyClient )上記はメソッドの引数で「ランダム」か「単体直」かを指 定できるのだが、そのメソッドを呼んでいる部分が 「ランダム」でハードコーディングされている 設定 (solrconfig) SolandraIndexWriter コレ 設定 (solrconfig) SolandraIndexReaderFactory コレ 設定 (solrconfig) ちなみに、エラーが出た理由は、 Cassandra が単一ノードで ノード間接続の ListenAddress が localhost だったため、 describe_ring で取得される end-point が 127.0.0.1 だった storage-conf.xml: Address to bind to and tell other nodes to connect to. You _must_ ~change this if you want multiple nodes to be able to communicate! Leaving it blank leaves it up to InetAddress.getLocalHost()This ~will always do the Right Thing *if* the node is properly configured ~hostname, name resolution, etc),and the Right Thing is to use the ~address associated with the hostname (it might not be).ListenAddress>localhost internal communications port -StoragePort>7000 設定 (schema) 次に、 schema.xml にて Index の設定をしま $す vi solr/conf/schema.xml ここでの設定は Solr でスキーマ定義をする 場合と一緒です(あまり詳しくはないけど) 設定 (schema) 今回は第 1 回の Lucandra で使った日本語サ ンプルと同様に、某飲食店検索 API から取得 したデータを使うことを想定します -id 店舗 ID (ユニークキー) name 店舗名称 -url 店舗ページ URL -address 住所 -tel 電話番号 -budget 平均予算 設定 (schema) 1) スキーマ名(=インデックス名)を変更 ※現行では複数定義できないのがいまいち schema name="solrshopsearch" version="1.2">2) schema/types/fieldType を追加 (CJKAnalyzer を使う fieldType を定義) fieldType name="text_cjk" class="solr.TextField">analyzer class="org.apache.lucene.analysis.cjk.CJKAnalyzer"/fieldType> 設定 (schema) 3) schema/fields/field の内容を今回のデータ に合わせて変更します text 7) schema/copyField で全文検索対象にする フィールドをコピーする指定をします http:/r.gnavi.co.jp/a683900/ field name="address">100-0005 東京都千代田区丸の 内2 -1-1 明治安田生命ビル丸の内マイプラザ B2 field name="tel">03-5219-5481 field name="budget">2500 doc> 検索 管理ツールからクエリを投げてみます 中段にある QueryString にクエリを記述して Search ボタンをクリックします 検索 こんな結果が返ります 検索 JSON もあります( wt=json を指定) 今回のまとめ ➲Solandra の動かし方を確認した 途中からうっすら気づいていたように、後 半はほとんど Solr の話しかしていない つまり、 lib に lucandra.jar を入れて solrconfig の IndexWriter/Reader を Solrandra に変更すれば、既存の Solr 環境 にも適用できる Thanks!

RECENT ACTIVITIES

Tags

共有ファイル Metacon ファイル置き場 共有ファイル Metacon ファイル置き場 Benkyoukai Final 共有ファイル Metacon ファイル置き場 Metacon 共有ファイル Metacon ファイル置き場 Kof2008 Benkyoukai ファイル置き場 雇用資料室 Aoyama ファイル置き場 雇用資料室 Qwl 1Lr 英語実習1Lrなどファイル置き場 Pp ファイル置き場 勝島運河倶楽部 Rune ファイル置き場 経営技術勉強会 Funtheory
Show more

Document relate

教養セミナー 教材プリント・ファイル 情報学習ポータル
0
16
1
昭和における日本の絵本の成立 ―翻訳が果たした役割を知るための資料― 外国語学部(紀要)|外国語学部の刊行物|関西大学 外国語学部
2
18
18
日本人学習者の目指す明瞭性()の高い英語発音とは 外国語学部(紀要)|外国語学部の刊行物|関西大学 外国語学部
1
22
13
情報科学 教材プリント・ファイル ユマニテク看護助産専門学校 情報科学
0
1
1
中小保険|日本政策金融公庫 graph syushi tiiki
0
2
1
平成27年9月 毎月の融資実績|日本政策金融公庫
0
4
1
≫ 一括 国民生活事業のご案内 2010|日本政策金融公庫
0
1
22
融資の特徴 国民生活事業のご案内 2015|日本政策金融公庫
0
1
12
「指定訪問看護の事業の人員及び運営に関する基準について」の一部改正について(平成24年3月26日保発0326第6号)
1
4
3
職務経歴書(職種別)・履歴書 【マイナビ転職】職務経歴書の書き方マニュアル完全版
0
1
2
職務経歴書(職種別)・履歴書 【マイナビ転職】職務経歴書の書き方マニュアル完全版
0
6
3
日銀は「賃金目標政策」を ホーム Tsutomu Watanabe
0
1
1
1年男子シングルス結果pdf 最近の更新履歴 熊本県中学テニス連盟
0
45
2
政策評価基本計画(平成21年度~平成24年度)(平成23年11月一部改正)[PDF:]
0
1
7
高記録密度ハードディスク装置(13年度更新)
0
0
45
Show more