Skip to content

Instantly share code, notes, and snippets.

@tsujimitsu
Last active March 7, 2016 05:04
Show Gist options
  • Save tsujimitsu/3964792 to your computer and use it in GitHub Desktop.
Save tsujimitsu/3964792 to your computer and use it in GitHub Desktop.
Apache Solr

Abstract

Reference

公式ドキュメント

Apache Solr とは

Solr 大御所

How To (Version 3+)

How To (Version 4+)

日本語トークナイザ

Binary File(ex. World,PDF)

Solrのチューニング個所

プラグイン,パッケージ

Search Engine

Case Study

Install Apache Solr 4.0.0

Initialize

$ yum install -y wget

iptables

$ vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8983 -j ACCEPT

$ service iptables restart

Java

$ cd /usr/local/src
$ rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
$ wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
$ rpm -Uhv rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

$ yum remove java

$ yum install -y java-1.6.0-openjdk.x86_64
$ export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre
$ java -version
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.5) (rhel-1.50.1.11.5.el6_3-x86_64)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

Java devel (option)

$ javac -version 
-bash: javac: コマンドが見つかりません
$ yum install -y java-1.6.0-openjdk-devel.x86_64
$ javac -version
javac 1.6.0_24

Apache Solr

$ cd /tmp
$ wget http://ftp.riken.jp/net/apache/lucene/solr/4.0.0/apache-solr-4.0.0.tgz
$ tar zxf apache-solr-4.0.0.tgz
$ cd apache-solr-4.0.0/example
$ java -jar start.jar

Access from GUI

http://localhost:8983/solr/admin/

Solr Admin page

Register Data

Register

$ cd /tmp/apache-solr-4.0.0/example/exampledocs/
$ java -jar post.jar ipod_other.xml
SimplePostTool version 1.5
Posting files to base url http://localhost:8983/solr/update using content-type  application/xml..
POSTing file ipod_other.xml
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/update..

Solr insert query return xml

Register Multi Data

Register

$ cd /tmp/apache-solr-4.0.0/example/exampledocs/
$ java -jar post.jar *.xml
$ cd /tmp/apache-solr-4.0.0/example/
$ java -jar start.jar &

仕様

更新

  • 既存の文書と同じ uniqueKey の文書を追加するような指示が Solr に POST された場合、その文書は自動的に置き換えられます。このことは、統計(statictics)ページの、“CORE”/searcher の部分にある、numDocs と maxDoc を観察すればわかります。

削除

  • データの削除を行なうには、文書のユニーク・キーを指定して削除コマンドを更新用 URL に POST する方法と、複数文書に一致するクエリーを指定する方法があります。(後者は、要注意。)これらの指令は小さいので、XML ファイル中に記述するのではなく、コマンド行中に埋め込む方法をご紹介します。

xml形式で引数を渡している

$ java -Ddata=args -Dcommit=no -jar post.jar "<delete><id>SP2514N</id></delete>"

index(索引)

  • 索引の変更は、新しいサーチャーがオープンするまで、反映されない
  • 索引へ反映するには、コミット・コマンドを送る必要がある。(post.jar は、デフォルトで自動実行している。)
  • コミットは、負荷の高い操作のため、索引中でいくつもの変更をまとめて加えた後に最後にコミット・コマンドを送るのが最適
  • 最適化コマンド(optimize)は、コミットを行なった後、索引セグメントのマージを行ない、全セグメントを1セグメントに併合します。これにより、検索速度が上がり、削除された文書は、廃棄されます。

Query(クエリー)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment