LoginSignup
2
1

More than 5 years have passed since last update.

Solr6のCoreAdmin APIについて

Posted at

Solr6のCoreAdminについて調べました。

1.Coreを作成する

#su - solr -c "/path/to/solr/bin/solr create_core -c corename"

事情がありsu使用していますが、このsuで「create_core」を実行すると失敗してしまいます。これはコア作成する際に、コアのフォルダーがsuの権限で作成され、のちsolrユーザがアクセスしようとすると、権限の問題が原因だと思われる。
Solrをインストールする際に作られた「solr」ユーザで実行すればこの問題を解決できます。

http://solr-host:8983/solr/admin/cores?action=CREATE&name=corename&instanceDir=corename

ちなみに、上記コマンドの中でもHTTP APIを使うことになっているが、このAPIを直接呼んでもコアを作成することができない。このAPIを使うには「corename」のフォルダーが存在し、solr_configとschemaを配置しておくことが必要です。API経由のコア作成は推奨されていません。
こちらのコマンドは標準のsolr_configとschemaをコピーでとってきてくれるようになっており、独立のコアを作成することができます。また以下のようにSolrには複数コア間のconfigとschemaを共用するコアを作成することもできます。

http://solr-host:8983/solr/admin/cores?action=CREATE&name=corename&instanceDir=corename&configSet=myconfigset

configsetは最初「$SOLR_HOME/configsets」に置かれている、「solr.xml」で設定可能。ちなみに、こちらのAPIはsolr_configとschemaをあらたに用意する必要がないため、コアの作成はAPIだけで完結できます。

/<configSetBaseDir>
    /myconfigset
        /conf
            /managed-schema
            /solrconfig.xml
    /otherconfigset
        /conf
            /managed-schema
            /solrconfig.xml

2.Coreを削除する

path/to/solr/bin/solr delete -c corename
http://solr-host:8983/solr/admin/cores?action=UNLOAD&core=corename&deleteIndex=true&deleteDataDir=true&deleteInstanceDir=true

作成と異なり、削除は直接APIから実行可能です。

3.コアをまたいだ検索
コアは大きくなることが予想できたら、複数のコアに分けてインデックスする方式を考えたほうがいいかもしれません、そのときShardsを用いコアをまたぐ検索ができます。もともと分散検索に用いたものですが、同一サーバでも機能します。

http://solr-host:8983/solr/corename/select?indent=on&q=*:*&shards=solr-host:8983/solr/corename,solr-host:8983/solr/othercorename
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1