Apache Solrの基本的な構成

Apache Solr の基本的な使い方をまとめる。

 

■Solrで検索ができるまでの作業順番 (DB操作と対比させてみよう)

(1)コアの登録 (データベースを作るみたいなイメージ)

(2)スキーマの登録 (データベース中にテーブルを作るみたいなイメージ)

(3)ドキュメントの登録 (テーブル中にレコードを登録するみたいなイメージ)

(4)インデックスの作成 (テーブルにIndexを作成するみたいなイメージ)

(5)検索実行 (SELECT文を発行するイメージ)

 

 

(1)コアの登録

何はともあれ、Solrでは、コアを作ることから始める。DB操作に例えるなら、「データベースを作る」みたいな意味合いです。一番の基礎になる入れ物のことです。

 

 ・コマンドで「コア」を作る場合

 参考にしている市販本(技術評論社 改定第3版 Apache Solr入門)ではSolr 6.3.0を使っており、

「configsetsディレクトリにプレインストールされている3つのコアの中から雛形とするコアを一つ選び、solr create_coreコマンドの -d オプションで指定する」

と書いてあるんだけど、Solr 8.0.0には、"_default" と "sample_techproducts_configs"の2つのコアしかないぞ!!!

  "_default" を指定して、とりあえず作ってみる。

 

 solr create_core -c solrbook -d _default

 

solr.cmdの中のコメントを見たところ、-d を省略すると "_default" が仮定されるって書いてあったw。この場合だと、-d 以降は指定しなくていいね。

あと、この市販本(Apache Solr入門)には、schema.xmlについて、多くのページを割いて説明しているんだけど、残念ながらSolr 8.0.0には、schema.xmlは無いし、solrconfig.xml中にschemaFactoryの設定も無いね。Solr 6.3.0の頃は、まだschema.xmlからmanaged-schemaに変わった直後で過渡期だったのでschema.xmlをメインに書いたんだと思うけど、Solr8.0.0が出ている今となっては、schema.xmlの影も形も見当たらないので、ぜひ改定第4版出して!! (初版、2版、3版と、すべて購入した私w 2版に至っては紙とオンライン書籍と両方買ったぞw) 正誤表もかなり溜まって来てるしw ちなみに正誤表自体に1か所誤りがありますよ! ("P231 L15"は、"P236 L15"の間違いじゃないかな)ここで言ってもだめかw

 

(2)スキーマの登録

スキーマには、複数のフィールドがある。

・フィールドには、フィールド名とフィールドタイプがある。

・フィールドタイプには、テキスト系と非テキスト系がある。

 ・テキスト系は、「単語分割」をして部分一致など高度な検索ができる文字。

 ・非テキスト系は、完全一致検索しかできない単純な文字。

 なので、"文字"と言ってもテキスト系の文字と、非テキスト系の文字がある。

・テキスト系は、高度な検索を実現するためにアナライザを持つ。

 

スキーマ

  ┣━フィールド1

  ┃  ┣━フィールド名

  ┃  ┗━フィールドタイプ

  ┃    ┣━(or)テキスト系

  ┃    ┃  ┗━アナライザ

  ┃    ┃    ┣━文字フィルタ(任意)

  ┃    ┃    ┣━トークナイザ(必須)

  ┃    ┃    ┗━(トークン)フィルタ(任意)

  ┃    ┗━(or)非テキスト系

  ┃

  ┣━フィールド2

  ┗━フィールドn

 

日本語用の「形態素解析」用のトークナイザとして、JapaneseTokenizerFactoryがある。形態素解析とは、辞書(kuromoji)を用いて日本語を意味のある単語に分解する事。kuromojiには20万語以上の単語が含まれている。

 

---------------------------------------
ITとことんのトップページ
 ┗■Apache Solrのトップページ
   ┗■本ページ