-Solr

*Solr [#s7cf6d78]

**設定値の外部ファイル化 [#u30f2247]

-クラスパスにあるファイルを設定可能

 -Dsolr.properties=solr.properties


**SOLR_HOME [#w11a7c40]

|ディレクトリ名|必須or任意|説明|
|conf|必須|solrconfig.xmlやschema.xml|
|data|必須|index格納|
|lib|任意|pluginのjar|
|bin|任意|レプリケーションスクリプト置き場|

**4.0インストール [#t7c18639]

試しに使ってみるだけなら、組み込みjettyで起動すると楽。TOMCATとの場合は単にwarを配置しておしまい!というわけではなくSOLR_HOMEに必要なファイルを配置して、solrconfig.xmlも配置しないとだめ!

5.x系からスタンドアロンとなりサーブレットコンテナ不要になった。


***組み込みJettyでお試し [#la7cf05b]

 cd SOLR_HOME/example/
 java -jar start.jar

http://localhost:8983/solr

 cd SOLR_HOME/example/exampledoc
 sh post.sh *.xml

管理画面の[Core Admin]でリロードする。

***SOLR_HOME [#c5a8772c]

解凍ディレクトリ/example/solrを指定する。


**利用サイト [#ea32625e]

-Yahoo! JAPAN
-E bay
-CookPad

**冗長構成 [#u2e57b09]

master/slave構成と新しいSolrCloudという仕組みがある。
master/slave構成と新しいSolrCloudという仕組みがある。properitesファイル化しておくと切り替えも楽。tomcatの場合はsetenv.shにするか、catalina.propertiesに記載しておく。

***4.x系のmaster/slave [#rd5e24e5]

http://x1.inkenkun.com/archives/254

-masterのsolrconfig.xml

  <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>

-slaveのsolrconfig.xml

  <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の探索ロジック [#l22a1d9c]

solr.xmlとその下部にぶら下がるcoreのsolrconfig.xmlが必要。<core>タグでまとめることも可能

http://blog.johtani.info/blog/2013/06/11/new-solr-xml/


**Solrクエリ [#c9dbc186]

-ちょっと特殊なので注意。フィールドを指定するがテーブル名という概念が無いようだ。

-備考(note)がtestかつ値段が5万以下

 q=note:test AND price:[* to 50000]

-ソートさせる

 sort=price desc

*スキーマ [#qe8b272a]

DBで一般的な型(type)以外にも留意しておくべき点をまとめる。なおtypeは<type>タグないで定義するが、一般的なものはSolrがすでに用意してる。フィルターしたい場合は自分で定義する。

**Elasticsearch [#yecd5788]
|indexed|インデックスが作成されそのフィールドで検索およびソートできるようになります。|
|stored|値を検索結果に含めるか|
|multiValued|1レコード(ドキュメント)に複数値を含めるか?|

-ベースはLuceneなのでSolrと一緒だが、急上昇しているらしい

*MySQLベース [#a74f28f1]
**列定義 [#b53212da]

**Senna [#zc25ef64]
dynamicFieldを利用すると、名前が一致するものはその定義が利用される。


**アナライザ [#f2108bd1]

アナライザを使うにはsolr.TextField型を指定して、<analyzer>タグの中でCharFilter,Tokenizer,TokenFilterの順に定義する。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS