Apache Solrについて ~Second Edition~

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

どうも、もう少しで2回目の15歳(つまり30歳)を迎える若林です。
今回は、前回紹介したApacheSolrについての続きです。

Apache Solrについて ~Second Edition~

【前回のおさらいと問題点について】

ApacheSolrは転置索引方式を利用しているため、高速検索を実現しております。
一見、このままでもよさそうな気がしますが・・・何か違和感ありませんか???

———前回の結果を引用——————
a.私は若林ジャパンを応援しています。
b.私は若林に住んでおります。
c.今日はいい天気です。

aを単語分割し、
「私 は 若林 ジャパン を  応援 し て い ま す」
bを単語分割し、
「私 は 若林 に 住ん で おり ま す」
cを単語分割し、
「今日 は いい 天気 です」

転置索引は下記のようになります。
転置索引結果

「若林」と検索された場合は、転置索引から、
「a,b」という結果が得られ、
a,bの文章に「若林」が含まれていたことがわかります。

———前回の結果を引用終わり——————

「若林」という検索ワードに対して、「若林ジャパン」の記事が引っかかっております。
名字や地名の若林を検索した人にとっては、この検索結果、要りませんよね?

このように、部分一致で余計な記事も引き込んでしまうので、ユーザー辞書を使用して改善する方法を紹介します。

【ユーザー辞書の活用】

前回、Apache Solrに辞書の機能があるといいましたが、これとはまた別に、ユーザー辞書というものが使用できます。
その名の通り、ユーザー側で独自に辞書を作成、使用できるというものです。
しかもこいつの便利なところは、品詞まで指定できるところですます。

下記のように追加
# Custom reading for former sumo wrestler
朝青龍,朝青龍,アサショウリュウ,カスタム人名
# 今回の追加分
若林ジャパン、若林ジャパン、ワカバヤシジャパン、カスタム名詞

何故かデフォルトで朝青龍が追加されています(笑)

テキスト解析する際に、この辞書を適用するだけで、解析結果が変わります。

私 は 若林ジャパン を  応援 し て い ま す

若林ジャパンとして解析されたため、
転置索引を更新すれば、「若林」で検索しただけでは、この文章はヒットしなくなります。

【検索リクエストとパラメータ】

これまで、Apache Solrのテキスト解析機能について説明しましたが、転置索引への検索についても少し説明します。
Apache Solrにはたくさんの検索パラメータがあり、これらのパラメータを活用することで柔軟な検索を行うことができます。

ここでは、qというパラメータのみ紹介します。
基本的はq=検索したいワードを設定して、検索を行います。
パラメータ名:q
設定値:ワード
基本はq=検索したいワードを設定して、検索を行います。

q=test
→testというキーワードで検索。検索対象フィールドは、デフォルトフィールド
q=title:test
→フィールド名titleに対してtestで検索。
q=*.*
→全件データ取得の特殊な計算式
q=word1^5 word2^10
→^(ハット)をつけたキーワードに重みづけをつけて検索

検索結果は、スコアが高いものから順番に表示されていきます。
パラメータを効果的に活用することによって、スコアを自由自在に操ることができます。

【さいごに】

Apache Solrについて興味を持たれましたか?
ご紹介した機能はほんの一部です。
まだまだ勉強すべき点はいろいろありますが、Apache Solrに関しての記事はこれで終わりの予定です。





広告システムについてのお問い合わせやご相談、パッケージ製品の詳細はこちらからどうぞ。
http://admage.jp/
アプリ計測SDK admage for Appのお問い合わせ・詳細はこちら。
http://apptizer.jp/

  • このエントリーをはてなブックマークに追加
  • Pocket
  • LINEで送る

コメント

コメントを残す

*