キモブロ

Please spy check please, Fucking retard

Solrに保存されているindexのtermをすべてJSONで取得

以下のコマンドでいけた。

curl 'http://localhost:8983/solr/[あなたのコア名]/terms?terms.fl=content&terms.limit=-1&wt=json'

Apache Solr入門という本に載ってなかった便利APIなのでメモ(載ってたらすいません!)
これは、indexされてるキーワード(term)リストが全部取得できるというすばらしいAPI


Solrの検索APIベンチマークするときに必須だった。なんで必要かって言うと具体的には

  • 1. 同一の検索クエリーでベンチマークすると2回目以降がキャッシュされて高速になってしまうため
  • 2. 全文検索はヒットしないとき超高速なレスポンスになるので、確実にヒットする検索クエリーを大量にランダムに投げることによってしかベンチマークできないため

という性質があるのでこのデータが超必要とかそういう話なのでした。


ちなみにsolrconfig.xmlであらゆるLRUCacheを無効化してもそれでも同一の検索クエリーが実行するたびにどんどん高速化してしまうという問題があって、同一の検索クエリーによってベンチマークするのをあきらめたという経緯があるのですが、何か良いやり方を知っている人がいればぜひぜひ教えてください!

JVM自体のなんらかのキャッシュ機能が関係してたりするのかなーとは思った。昔はApache JMeterという負荷テストツールで最初の1回は超遅くて2回目以降が爆速になるとか言う問題を発見して、尿検査みたいに1回目のスコアを破棄してたのを思い出しましたね。

追記:
コメントで教えていただきました。載ってましたすみません! 大変失礼致しました

7.1.1のTermsComponentがこの機能になります。