2013-06-01から1ヶ月間の記事一覧
Luceneの基礎を、少しずつ。今回は、ソートにチャレンジしてみたいと思います。ソートを行うには、SortクラスとSortFieldクラスを使用し、これらをIndexSearcher#searchメソッドに叩き込みます。Sort http://lucene.apache.org/core/4_3_1/core/org/apache/l…
前回は、CacheStoreとトランザクションの確認をしました。今度は、クラスタリングです。前回はこちら http://d.hatena.ne.jp/Kazuhira/20130627/1372339722ここから、キャッシュサーバが複数必要になるので、浮いててもらうサーバを適宜起動・停止して進めて…
前回の続きです。InfinispanのListener自体とか、ソースコードや設定ファイルについては前回のエントリを参照してくださいね。InfinispanのListener機能を使ってみる - 1 http://d.hatena.ne.jp/Kazuhira/20130626/1372258778では、簡単そうなものから行って…
Infinispanを使ったListenerネタ、これで最後です。最後は、Listenerのコールバックの同期/非同期の切り替えです。Listenerは@Listenerアノテーションを普通に付与すると、同期というか、イベントを発生させたスレッドと同じスレッドで動きます。 @Listener…
Infinispanには、各種Cacheの操作などに対して、イベント通知を受け取って何か処理をするListernerの機能があります。Listeners and Notifications https://docs.jboss.org/author/display/ISPN/Listeners+and+NotificationsJBossDataGridのリスナーのコール…
ちょっと、こちらの資料を見てfrom old Java to modern Java http://www.slideshare.net/shintanimoto/from-old-java-to-modern-javaひとつ衝撃を受けた点が。 APIの変更で、native2asciiを使わなくて済むようになった えぇぇ、マジですか?知らんかった…。…
Mavenを使っていると、自分の仕事ではどこかで出くわすのが「インターネットにつながっていない時の動きが微妙」というところ。最終的にビルド環境をインターネットにつなげられないところに構築することが多くて、そういう時はMavenリポジトリを自分で立て…
Java SE 7で導入されたアンダースコア入り数値リテラルですが、今日ちょっと勉強していて、いろいろあったのでちょっと試してみました。数値リテラルの途中に「_」が入れられるというものですが、 リテラルの先頭と末尾には記述できない 記号の前後には記述…
LuceneのClassic QueryParserを、ちょっと勉強しようということで。今回は、それなりにデータを入れてインデックスを作ろうと思ったので、こちらから住所データをダウンロードしてきました。住所.jp http://jusyo.jp/csv/new.phpデータの仕様 http://jusyo.j…
Javaのファイルコピー、特に高速化の話でよく見かける、こんなコード。 try (FileChannel srcChannel = new FileInputStream("...").getChannel(); FileChannel destChannel = new FileOutputStream("...").getChannel()) { srcChannel.transferTo(0, srcCha…
先ほどまで、とあるライブラリを使ったコードのコンパイルがうまくいかなくて、Scalaコンパイラのコードとかを眺めていたわけですが、その時にbuild.gradleに compileScala { compileScala.scalaCompileOptions.additionalParameters= ['-Ydebug'] } みたい…
6/24追記) Mavenでの動作確認と、もう少し結論を加えました昨日、sbtでもGradleでも、ScalaでInfinispanのTree APIでビルドに失敗し、しかもscalacコマンドではビルドに成功するという意味不明な状態を見ることになりました。前回のエントリ http://d.haten…
最初に書いておきます、未解決です。 Unsolved!(6/19 追記) コンパイル、通せるようになりました! http://d.hatena.ne.jp/Kazuhira/20130619/1371647811この前、InfinispanのTree APIを使おうとして、sbt+Scalaでビルドに失敗するということを書きまし…
これまた、気になっていたAPIを。Key affinity service https://docs.jboss.org/author/display/ISPN/Key+affinity+service分散したInfinispanクラスタで、特定のNodeに値が配置されるようにしたい場合に使うクラスのようです。Nodeを識別するための、クラス…
ちょっと前に、Kuromojiを使った形態素解析の挙動の確認をしてみましたけど、今度はユーザ定義辞書を使ってみたいと思います。今回は、TokenizerではなくAnalyzerを使う方向で考えます。なお、こちらのサイトを少し参考にさせていただきました。 http://www.…
JDK 7から、ThreadLocalRandomなるクラスが追加されてたんですね…知らんかった…。というわけで、JDK 7だと乱数生成として使えるクラスは、3つなのかな? Math.randomも、結局Random使ってますしね。Random http://docs.oracle.com/javase/jp/7/api/java/util…
前回はMongoDB Shellからでしたが、今度はJava系の言語からMongoDBを扱ってみたいと思います。今回行うのは、前回の縮小版です。 http://d.hatena.ne.jp/Kazuhira/20130613/1371127093はい。で、対象はJava、Groovy、Scalaで。それではいってみましょう。*C…
ちょっと脇道系でしょうか?InfinispanのTree APIが気になっていたので、遊んでみました。Tree API Module https://docs.jboss.org/author/display/ISPN/Tree+API+Moduleけっこう面白そうな機能なのですが、予想外のところでハマったりしましたけど…。 Tree …
MongoDBをインストールしたので、まずはMongoDB Shellで遊んでみましょう。リファレンスはこちらですからね。mongo Shell Methods http://docs.mongodb.org/manual/reference/method/ help 何はともあれ、まずはヘルプ。 > help db.help() help on db method…
ほんの触りだけになるかもしれませんが、MongoDBでちょっと遊んでみることにしました。MongoDB http://www.mongodb.org/参考になりそうなところ http://gihyo.jp/dev/serial/01/mongodbで、当方Ubuntu Linuxですが、オフィシャルサイトからビルド済みtar.gz…
少し前にも似たようなものを書きましたが、Luceneの基礎ということで。Introduction to Lucene's APIs http://lucene.apache.org/core/4_3_0/core/overview-summary.html#overview_descriptionこちらを参考に、Luceneのインデックスの 登録 検索 削除 を書い…
Infinispanの設定の中で、storeAsBinaryというものがありますが、これについてちょっと調べてみました。設定的には、XML中に <default> <storeAsBinary /> <clustering mode="distribution"> <hash numOwners="2" /> </clustering> </default> みたいな感じであるだけなので。以下のドキュメントの、/infinispan/defaultまたはnamedCache/storeAsBinaryのところを読む…
昨日、LuceneのAnalyzerをいくつか触ってみたわけですが、そのうちのJananeseAnalyzer(形態素解析器Kuromojiを使っているやつ)のEXTENDEDモードの挙動が納得いかなくて、もう少し追ってみることにしました。なにせ、ロンウィットのページ http://www.rondh…
InfinispanのMap Reduceについて見ていて、「どうやって自ノードのキーだけを対象にしてるのかな?」と思ったことがきっかけで、その実装を調べてみました。結論からいくと、DistributionManagerを使えばいいみたいです。 http://docs.jboss.org/infinispan/…
前に、LuceneのDirectoryの実装としてのInfinispanの機能を使ってみましたが、そもそも自分はLuceneにあまり詳しくないので、これを機にちょっと勉強してみることにしました。仕事でも、直接的でないにしろ、Solrを使っていますので。Apache Lucene http://l…