CLOVER🍀

That was when it all began.

2013-06-01から1ヶ月間の記事一覧

Luceneでソート

Luceneの基礎を、少しずつ。今回は、ソートにチャレンジしてみたいと思います。ソートを行うには、SortクラスとSortFieldクラスを使用し、これらをIndexSearcher#searchメソッドに叩き込みます。Sort http://lucene.apache.org/core/4_3_1/core/org/apache/l…

InfinispanのListener機能を使ってみる - 3

前回は、CacheStoreとトランザクションの確認をしました。今度は、クラスタリングです。前回はこちら http://d.hatena.ne.jp/Kazuhira/20130627/1372339722ここから、キャッシュサーバが複数必要になるので、浮いててもらうサーバを適宜起動・停止して進めて…

InfinispanのListener機能を使ってみる - 2

前回の続きです。InfinispanのListener自体とか、ソースコードや設定ファイルについては前回のエントリを参照してくださいね。InfinispanのListener機能を使ってみる - 1 http://d.hatena.ne.jp/Kazuhira/20130626/1372258778では、簡単そうなものから行って…

InfinispanのListener機能を使ってみる - 4

Infinispanを使ったListenerネタ、これで最後です。最後は、Listenerのコールバックの同期/非同期の切り替えです。Listenerは@Listenerアノテーションを普通に付与すると、同期というか、イベントを発生させたスレッドと同じスレッドで動きます。 @Listener…

InfinispanのListener機能を使ってみる - 1

Infinispanには、各種Cacheの操作などに対して、イベント通知を受け取って何か処理をするListernerの機能があります。Listeners and Notifications https://docs.jboss.org/author/display/ISPN/Listeners+and+NotificationsJBossDataGridのリスナーのコール…

java.util.Propertiesについて

ちょっと、こちらの資料を見てfrom old Java to modern Java http://www.slideshare.net/shintanimoto/from-old-java-to-modern-javaひとつ衝撃を受けた点が。 APIの変更で、native2asciiを使わなくて済むようになった えぇぇ、マジですか?知らんかった…。…

Mavenでリポジトリへの接続タイムアウトを設定する

Mavenを使っていると、自分の仕事ではどこかで出くわすのが「インターネットにつながっていない時の動きが微妙」というところ。最終的にビルド環境をインターネットにつなげられないところに構築することが多くて、そういう時はMavenリポジトリを自分で立て…

Java SE 7のバイナリリテラルと、アンダースコア入り数値リテラルについて

Java SE 7で導入されたアンダースコア入り数値リテラルですが、今日ちょっと勉強していて、いろいろあったのでちょっと試してみました。数値リテラルの途中に「_」が入れられるというものですが、 リテラルの先頭と末尾には記述できない 記号の前後には記述…

LuceneのClassic QueryParserを使ってみる

LuceneのClassic QueryParserを、ちょっと勉強しようということで。今回は、それなりにデータを入れてインデックスを作ろうと思ったので、こちらから住所データをダウンロードしてきました。住所.jp http://jusyo.jp/csv/new.phpデータの仕様 http://jusyo.j…

Javaで2Gバイト以上のサイズのファイルをコピーする

Javaのファイルコピー、特に高速化の話でよく見かける、こんなコード。 try (FileChannel srcChannel = new FileInputStream("...").getChannel(); FileChannel destChannel = new FileOutputStream("...").getChannel()) { srcChannel.transferTo(0, srcCha…

scala/scalac/fscなどのコマンドのオプションを、Scalaコンパイラのソースから確認する

先ほどまで、とあるライブラリを使ったコードのコンパイルがうまくいかなくて、Scalaコンパイラのコードとかを眺めていたわけですが、その時にbuild.gradleに compileScala { compileScala.scalaCompileOptions.additionalParameters= ['-Ydebug'] } みたい…

続・Infinispan Tree APIで、sbt+Scalaでビルドができない件について

6/24追記) Mavenでの動作確認と、もう少し結論を加えました昨日、sbtでもGradleでも、ScalaでInfinispanのTree APIでビルドに失敗し、しかもscalacコマンドではビルドに成功するという意味不明な状態を見ることになりました。前回のエントリ http://d.haten…

Infinispan Tree APIを使用して、sbt+Scalaでビルドできない件について

最初に書いておきます、未解決です。 Unsolved!(6/19 追記) コンパイル、通せるようになりました! http://d.hatena.ne.jp/Kazuhira/20130619/1371647811この前、InfinispanのTree APIを使おうとして、sbt+Scalaでビルドに失敗するということを書きまし…

Infinispanで、特定のNodeに配置するキーを生成する

これまた、気になっていたAPIを。Key affinity service https://docs.jboss.org/author/display/ISPN/Key+affinity+service分散したInfinispanクラスタで、特定のNodeに値が配置されるようにしたい場合に使うクラスのようです。Nodeを識別するための、クラス…

LuceneのKuromoji(JapaneseAnalyzer)に、ユーザ定義辞書を適用してみる

ちょっと前に、Kuromojiを使った形態素解析の挙動の確認をしてみましたけど、今度はユーザ定義辞書を使ってみたいと思います。今回は、TokenizerではなくAnalyzerを使う方向で考えます。なお、こちらのサイトを少し参考にさせていただきました。 http://www.…

Random/ThreadLocalRandom/SecureRandom

JDK 7から、ThreadLocalRandomなるクラスが追加されてたんですね…知らんかった…。というわけで、JDK 7だと乱数生成として使えるクラスは、3つなのかな? Math.randomも、結局Random使ってますしね。Random http://docs.oracle.com/javase/jp/7/api/java/util…

Java/Groovy/ScalaでMongoDBクライアントプログラミング

前回はMongoDB Shellからでしたが、今度はJava系の言語からMongoDBを扱ってみたいと思います。今回行うのは、前回の縮小版です。 http://d.hatena.ne.jp/Kazuhira/20130613/1371127093はい。で、対象はJava、Groovy、Scalaで。それではいってみましょう。*C…

InfinispanのTree APIを使ってみる

ちょっと脇道系でしょうか?InfinispanのTree APIが気になっていたので、遊んでみました。Tree API Module https://docs.jboss.org/author/display/ISPN/Tree+API+Moduleけっこう面白そうな機能なのですが、予想外のところでハマったりしましたけど…。 Tree …

MongoDB Shellで遊ぶ

MongoDBをインストールしたので、まずはMongoDB Shellで遊んでみましょう。リファレンスはこちらですからね。mongo Shell Methods http://docs.mongodb.org/manual/reference/method/ help 何はともあれ、まずはヘルプ。 > help db.help() help on db method…

MongoDBをLinuxにインストールする

ほんの触りだけになるかもしれませんが、MongoDBでちょっと遊んでみることにしました。MongoDB http://www.mongodb.org/参考になりそうなところ http://gihyo.jp/dev/serial/01/mongodbで、当方Ubuntu Linuxですが、オフィシャルサイトからビルド済みtar.gz…

チュートリアルを参考に、Luceneのインデックスの登録、検索、削除を書いてみる

少し前にも似たようなものを書きましたが、Luceneの基礎ということで。Introduction to Lucene's APIs http://lucene.apache.org/core/4_3_0/core/overview-summary.html#overview_descriptionこちらを参考に、Luceneのインデックスの 登録 検索 削除 を書い…

InfinispanのstoreAsBinaryとは?

Infinispanの設定の中で、storeAsBinaryというものがありますが、これについてちょっと調べてみました。設定的には、XML中に <default> <storeAsBinary /> <clustering mode="distribution"> <hash numOwners="2" /> </clustering> </default> みたいな感じであるだけなので。以下のドキュメントの、/infinispan/defaultまたはnamedCache/storeAsBinaryのところを読む…

LuceneのAnalyzer、KuromojiのModeごとの挙動を確認する

昨日、LuceneのAnalyzerをいくつか触ってみたわけですが、そのうちのJananeseAnalyzer(形態素解析器Kuromojiを使っているやつ)のEXTENDEDモードの挙動が納得いかなくて、もう少し追ってみることにしました。なにせ、ロンウィットのページ http://www.rondh…

InfinispanのDistributionManagerを使って、キャッシュエントリの保持情報を確認する

InfinispanのMap Reduceについて見ていて、「どうやって自ノードのキーだけを対象にしてるのかな?」と思ったことがきっかけで、その実装を調べてみました。結論からいくと、DistributionManagerを使えばいいみたいです。 http://docs.jboss.org/infinispan/…

LuceneのAnalyzerで遊んでみる

前に、LuceneのDirectoryの実装としてのInfinispanの機能を使ってみましたが、そもそも自分はLuceneにあまり詳しくないので、これを機にちょっと勉強してみることにしました。仕事でも、直接的でないにしろ、Solrを使っていますので。Apache Lucene http://l…