BLOGTIMES
» ArchiveList (Tag for "solr" )
«Prev || 1 · 2 · | Next»
2020/05/30

Python で Solr をいじる

python  solr 

Python で Solr にアクセスする必要があったので、solrpy を使ってみました。
ちょっと古いライブラリですが、対象の Solr もちょっと古かったのでちょうど良かった感じでした。

search5/solrpy: Automatically exported from code.google.com/p/solrpy

solrpy is a Python client for Solr, an enterprise search server built on top of Lucene. solrpy allows you to add documents to a Solr instance, and then to perform queries and gather search results from Solr using Python.

検索をするサンプル

見たまんまですが、ページングの処理には next_batch() を使う必要があります。

from solr import SolrConnection solr_url = "http://host/solr/core0/" solr_query = "*:*" solr_fl = ['id'] solr = SolrConnection(solr_url, timeout=600) resp = solr.query(solr_query, fields=solr_fl , rows=100) for hit in resp.results: print(hit['id']) while resp := resp.next_batch(): for hit in resp.results: print(hit['id'])

while の条件式中で代入文を使いたかったので、Python 3.8で新しく導入された代入式*1(いわゆるセイウチ演算子) := を使ってみました。
今まで Python はこういう書き方できなかったんですね。。。。


at 23:38 |
2017/12/22

Apache Solr 7.2 リリース

solr 

Solr 7.2 がリリースされていた*1のでメモ。

Apache Solr - News

The Lucene PMC is pleased to announce the release of Apache Solr 7.2.0

最近新しい Solr をインストールすることもないので、改めて勉強する必要がありますね。


at 17:28 |
2017/08/23

Dovecot の検索バックエンドに Solr を使う

solr  dovecot 
Solr - Dovecot の検索バックエンドに Solr を使う

Dovecot は全文検索のバックエンドとして Solr を使うことができる*1ので、設定してみました。

Solr の準備

Solr がインストールされていなければ Solr をインストールしておきます。
Dovecot のサーバからアクセス可能であれば、負荷分散のために別サーバにデプロイすることも可能です。

インストールが終わったら以下のコマンドで core を作ります。

/opt/solr/bin/solr create -c dovecot

スキーマは schema.xml を使います。
ほぼデフォルトのままですが、日本語に対応するために一部を text_cjk に変更してあります。

最近の Solr は Managed Schema ですがが、schema.xml からの変換は自動でやってくれるので、conf ディレクトリにコピーするだけで大丈夫です。

systemctl stop solr cp /path/to/schema.xml /var/solr/data/dovecot/conf/ chown --reference=/var/solr/data/dovecot/conf/managed-schema /var/solr/data/dovecot/conf/schema.xml chmod --reference=/var/solr/data/dovecot/conf/managed-schema /var/solr/data/dovecot/conf/schema.xml rm /var/solr/data/dovecot/conf/managed-schema systemctl start solr

これで Solr 側の準備は完了です。

[Dovecot の検索バックエンドに Solr を使う の続きを読む]

at 09:29 |
2017/08/20

Solr 6.6 を CentOS 7 にインストールしてみる

solr  centos7 

久しぶりに Solr をインストールしてみました。
今回のは CentOS 7.3Solr 6.6 の組み合わせです。

下準備

Java 8 以上が必要なので、インストールされていなければ、yum で java8 をインストールします。

yum install java-1.8.0-openjdk.x86_64

Solr のインストール

Solr のインストールはいろいろとやることが多いので面倒なイメージでしたが、いつの間にか install_solr_service.sh というインストールスクリプトが添付されるようになっており、これを使うとあっという間にインストールできます。スクリプトの使い方の詳細については「Run the Solr Installation Script - Taking Solr to Production」にありますが、とりあえず以下の手順でインストールはできます。

cd /tmp wget http://apache.org/dist/lucene/solr/6.6.0/solr-6.6.0.tgz tar xzvf solr-6.6.0.tgz solr-6.6.0/bin/install_solr_service.sh --strip-components=2 bash ./install_solr_service.sh solr-6.6.0.tgz -n

あとは systemd からデーモンを有効化して、起動してやれば OK。

systemctl enable solr systemctl start solr systemctl status solr

ファイルの置き場所は以下のようになっているようです。

  • Solr の本体やユーティリティスクリプトなど、ユーザーが更新する必要がないもの:/opt/solr
  • インデックスや設定ファイルなど: /var/solr
  • デーモン起動時の環境設定など: /etc/default/solr.in.sh

schema.xml がない

core の追加は /opt/solr/bin/solr を使って行うことができます。

/opt/solr/bin/solr create -c hoge

上記を行うことで /var/solr/data/hoge のようなディレクトリができるのですが、conf の中を見てもスキーマを定義するための schema.xml がなくて困ってしまいました。これは、最近の Solr は 従来の schema.xml を使う方法(Classic Index Schema)ではなく、Managed Schema という REST API からスキーマを定義する方がデフォルトになったためです。まぁ、conf/managed-schema という気になるファイルを覗いてみたら、中身は schema.xml そのものでしたけど。

ぼちぼち使い方をマスターしていきたいと思います。


    at 21:04 |
    2016/04/13

    Apache Lucene/Solr 6.0 リリース

    solr 

    全文検索エンジンとサーバである Apache Lucene/Solr のメジャーアップデート版 6.0 が公開されていたのでメモ。

    最近あまり触っていなかったのですが、いつの間にか Java8 必須になっているようです。

    全文検索ライブラリ「Apache Lucene 6.0」リリース、新たに多次元データをサポート | OSDN Magazine

    Lucene 6では、Java 8が最小要件となった。また、新たに二次元/三次元などの多次元データがインデックスやドキュメント、コーデックAPIでサポートされるようになった。kd木ベースのデータ構造を使って処理を行うもので、これにあわせてIntFieldやLongFieldといった数値型フィールドタイプは非推奨となった。

      at 23:08 |
      2016/02/09

      Solr のインデックスを他の Solr にコピーする「solr2solr」

      nodejs  solr 

      Solr のインデックスのレプリケーションには標準の ReplicationHandler*1 が使えますが、定常的ではなく一度だけお手軽にできればいいやという場合に使えそうな npm のライブラリを見つけたのでメモ。

      solr2solr

      Migrate one Solr index to another, and multiply/manipulate the data on the way
      This tool will query a given Solr index and copy it to another. Along the way it will give you the opportunity to change field names, drop fields altogether, and fabricate new fields.

      使い方もシンプルなので、今度試してみようと思います。


      at 22:39 |
      2013/08/06

      gosen をコンパイルしてみる

      solr  nlp  java 
      ReadingProcessorDemo - gosen をコンパイルしてみる

      Solr の形態素解析器としてよく使われている lucene-gosen*1gosen の部分だけを動かしてみたかったのでコンパイルをしてみました。ちょっと古いプロダクトなのでハマり所が随所にあります。

      以下、作業メモ。

      [gosen をコンパイルしてみる の続きを読む]

      at 17:42 |
      2012/10/14

      Solr 4.0.0 リリース

      solr 
      solr4の管理画面 - Solr 4.0.0 リリース

      Apache Solr*1 の 4.0.0 がリリースされました。
      今回のバージョンアップはクラスタ対応等いろいろと機能が増えていますが、起動してみて管理画面が綺麗になっていたのには驚きました。

      Webアプリケーションに検索機能を提供するApache Lucene/Solrが大型アップデート

      本日(米国時間10/12)Apache Foundationが、検索ツールセットLuceneと、このツールを使った検索プラットホームSolrの大型アップデート、バージョン4.0をリリースした。中でもとくに目立つのは、Solrが新機能の増設により、より使いやすく、スケーラブルで、よりカスタマイズしやすくなったことだ。
      両者は連携的に開発が行われているが、Luceneはアプリケーションに検索機能を容易に導入するためのJavaライブラリ、Solrはユーザ(企業等)がWebサービスとして動かす検索エンジン本体だ。後者は言うまでもなくLuceneを検索の中心的機能として使っている。

      これから少しずつ使い込んでいこうと思います。


      at 17:00 |
      2012/07/12

      Solr は 4.x へ

      solr 

      Solr4.0のα版がリリースされていた*1のでメモ。
      4.0 になって機能追加された部分については右のスライドが手軽に読めるので便利です。

      特に NoSQL な使い方をする上で便利な機能が追加されていたり、Pseudo-Joinが可能になっていたりするので使い方の幅が広がりそうです。あととはインデックスを分散配置させるための SolrCloud が導入されたのも注目ですね。これまではレプリケーションはサポートされていましたが、構成を変更するのは意外と手間がかかっていたので、それがどの程度改良されたのかは興味があります。


      at 21:55 |
      2012/06/01

      ruby-solr から rsolr へ乗り換え

      ruby  solr 

      久しぶりに Ruby から Solr を叩くプログラムを書こうと思って調べていたら solr-ruby が obsolete になっていた*1ので、後継として推奨されていた mwmitchell/rsolr を使うことにしました。
      インストールは gem install rsolr で一撃です。

      あとはこんな感じでプログラミングできるようです。

      require 'rubygems' require 'rsolr' solr = RSolr.connect :url => "http://solr.example.jp:8080/path/to/core" solr.add :id => "1", :body => "body" solr.commit

      今回の Solr マシンは Basic 認証がかかっているのですが、URLを下記のようにすれば Basic 認証してくれるようです。

      http://user:password@solr.example.jp:8080/path/to/core

      at 19:44 |
      «Prev || 1 · 2 · | Next»
      » ArchiveList (Tag for "solr" )