システムプロパティを設定ファイルに利用可能。 tomcatならcatalina.propertiesかsetenv.shに設定しておき、 ${solr.master.enable}のような形で利用する。
ディレクトリ名 | 必須or任意 | 説明 |
conf | 必須 | solrconfig.xmlやschema.xml |
data | 必須 | index格納 |
lib | 任意 | pluginのjar |
bin | 任意 | レプリケーションスクリプト置き場 |
試しに使ってみるだけなら、組み込みjettyで起動すると楽。TOMCATとの場合は単にwarを配置しておしまい!というわけではなくSOLR_HOMEに必要なファイルを配置して、solrconfig.xmlも配置しないとだめ!
5.x系からスタンドアロンとなりサーブレットコンテナ不要になった。
cd SOLR_HOME/example/ java -jar start.jar
cd SOLR_HOME/example/exampledoc sh post.sh *.xml
管理画面の[Core Admin]でリロードする。
解凍ディレクトリ/example/solrを指定する。
master/slave構成と新しいSolrCloudという仕組みがある。properitesファイル化しておくと切り替えも楽。tomcatの場合はsetenv.shにするか、catalina.propertiesに記載しておく。
http://x1.inkenkun.com/archives/254
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="master"> <str name="enable">true</str> <str name="replicateAfter">commit</str> <str name="replicateAfter">startup</str> <str name="confFiles">schema.xml,stopwords.txt</str> <str name="commitReserveDuration">00:00:10</str> </lst> </requestHandler>
<requestHandler name="/replication" class="solr.ReplicationHandler" > <lst name="slave"> <str name="enable">true</str> <str name="masterUrl">http://153.127.201.48:8080/solr</str> <str name="pollInterval">00:00:60</str> </lst> </requestHandler>
solr.xmlとその下部にぶら下がるcoreのsolrconfig.xmlが必要。<core>タグでまとめることも可能
http://blog.johtani.info/blog/2013/06/11/new-solr-xml/
q=note:test AND price:[* to 50000]
sort=price desc
DBで一般的な型(type)以外にも留意しておくべき点をまとめる。なおtypeは<type>タグないで定義するが、一般的なものはSolrがすでに用意してる。フィルターしたい場合は自分で定義する。
indexed | インデックスが作成されそのフィールドで検索およびソートできるようになります。 |
stored | 値を検索結果に含めるか |
multiValued | 1レコード(ドキュメント)に複数値を含めるか? |
dynamicFieldを利用すると、名前が一致するものはその定義が利用される。
アナライザを使うにはsolr.TextField型を指定して、<analyzer>タグの中でCharFilter,Tokenizer,TokenFilterの順に定義する。
SQL | Solr |
field = "hoge" | fq=field:hoge |
field LIKE "hoge%" | fq=field:hoge* |
field NOT LIKE "hoge%" | fq=field:-hoge* |
field IS NOT NULL | fq=field:[* TO *] |
field IS NULL | fq=-field:[* TO *] |
field > 2012 AND field < 2013 | fq=field:[2012 TO *]&fq=field[* TO 2013] |
field BETWEEN 2012 AND 2013 | fq=field:[2012 TO 2013] |
ORDER BY field ASC | sort=field asc |
全部消す | /up2017-06-26stream.body=<delete><query>*:*</query></delete>&commit=true |
指定 | /up2017-06-26stream.body=<delete><query>id:GB18030TEST</query></delete>&commit=true |