import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.ngram.NGramTokenizer;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.Scorer;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.TextFragment;
import java.io.Reader;
object HighlightRunner {
val CONTENT = "東京特許許可局";
val QUERY_STRING = "許可";
val F = "f";
var analyzer: Analyzer = new NGramAnalyzer(1,3);
def main(args: Array[String]) {
try{
var qp :QueryParser = new QueryParser( F, analyzer );
var query :Query = qp.parse( QUERY_STRING );
var scorer :Scorer = new QueryScorer( query, F );
var h :Highlighter = new Highlighter( scorer );
println( h.getBestFragment( analyzer, F, CONTENT ) );
} catch {
case e:StringIndexOutOfBoundsException => ()
case e:Exception => {
e.printStackTrace
}
} finally {
// println("FINALLY");
}
}
}
// http://blog.goo.ne.jp/13th-floor/e/f694fdb1319134b40e4dee5ed8c15a92
class NGramAnalyzer(minGram:Int, maxGram:Int) extends Analyzer {
def tokenStream(fieldName:java.lang.String, reader:java.io.Reader): org.apache.lucene.analysis.TokenStream =
new NGramTokenizer(reader, minGram, maxGram);
}
金曜日, 8月 29, 2008
[Scala] Luceneのハイライタ(NGramTokenizer)
NGramTokenizerをScalaでやってみました。
木曜日, 8月 28, 2008
[Scala] Luceneのハイライタ(N-gram×)
全文検索エンジンLuceneの実験。
公開されていた例(≒N-gramでHighlighterがうまく動かない)をScalaでリライトしてみた。
- - - -
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.Scorer;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.TextFragment;
object HighlightRunner {
val CONTENT = "ひふみひふみひふみひふみひひふひふみろひふみろ";
val QUERY_STRING = "ひふみひふみ";
val F = "f";
var analyzer : Analyzer = new CJKAnalyzer();
def main(args: Array[String]) {
try{
var qp :QueryParser = new QueryParser( F, analyzer );
var query :Query = qp.parse( QUERY_STRING );
var scorer :Scorer = new QueryScorer( query, F );
var h :Highlighter = new Highlighter( scorer );
println( h.getBestFragment( analyzer, F, CONTENT ) );
} catch {
case e:StringIndexOutOfBoundsException => ()
case e:Exception => {
e.printStackTrace
}
} finally {
}
}
}
公開されていた例(≒N-gramでHighlighterがうまく動かない)をScalaでリライトしてみた。
- - - -
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.highlight.Highlighter;
import org.apache.lucene.search.highlight.Scorer;
import org.apache.lucene.search.highlight.QueryScorer;
import org.apache.lucene.search.highlight.TextFragment;
object HighlightRunner {
val CONTENT = "ひふみひふみひふみひふみひひふひふみろひふみろ";
val QUERY_STRING = "ひふみひふみ";
val F = "f";
var analyzer : Analyzer = new CJKAnalyzer();
def main(args: Array[String]) {
try{
var qp :QueryParser = new QueryParser( F, analyzer );
var query :Query = qp.parse( QUERY_STRING );
var scorer :Scorer = new QueryScorer( query, F );
var h :Highlighter = new Highlighter( scorer );
println( h.getBestFragment( analyzer, F, CONTENT ) );
} catch {
case e:StringIndexOutOfBoundsException => ()
case e:Exception => {
e.printStackTrace
}
} finally {
}
}
}
木曜日, 8月 21, 2008
[linux] memcachedをsnmpで
AgentXというプロトコルを使うと、既存のsnmpdにアドオンで監視/モニタ対象を増やすことが出来ます。
この方向で、memcachedもAgentXをしゃべられるようにしよう、というpatchがありました。
運用観点でも進歩してくると、ありがたいです。
この方向で、memcachedもAgentXをしゃべられるようにしよう、というpatchがありました。
運用観点でも進歩してくると、ありがたいです。
火曜日, 8月 12, 2008
[linux] DTrace
OpenSolarisで話題のDTrace(PostgreSQLでもサポート)は、いまやLinuxでも使えるんですね(DTrace for Linux)。memcachedもv1.2.6からサポートと書いてあることですし、ぜひ使ってみたいものです。
土曜日, 8月 09, 2008
水曜日, 7月 16, 2008
火曜日, 7月 08, 2008
[Linux] loadが真夜中に急上昇?
木曜日, 7月 03, 2008
[Linux] pg_osmem.py
以前fincoreを使うと、特定のファイルデータがOSキャッシュ上にどれくらい載っているかが調べられることをメモしたが、以下pg_osmem.pyというコマンドが投稿されていた。
出力例などが見られないのでなんともですが(ちなみに、これで使われているpsycopg2というDBコネクタも性能がよいものであるとのことです)。
via kwout
月曜日, 6月 30, 2008
木曜日, 6月 26, 2008
月曜日, 6月 16, 2008
[Linux] unfuffle
unfuddleという無料のSVNリポジトリを初めて使ってみた。ただリポジトリを無料でインターネットに公開しただけじゃなく、UIとしてとても優れいていて使いやすそう。
普通のSVNなんだけど、以下コマンドラインでの使い方。
[f0054@divers-high ~]$ svn checkout http://tf0054.unfuddle.com/svn/tf0054_mm/
認証領域: <http://tf0054.unfuddle.com:80> Unfuddle Subversion Repository
'tf0054' のパスワード:
リビジョン 0 をチェックアウトしました。
[tf0054@divers-high ~]$ cd tf0054_mm/
[tf0054@divers-high tf0054_mm]$ ls -la
合計 24
drwxrwxr-x 3 tf0054 tf0054 4096 6月 16 01:50 .
drwxr-xr-x 28 tf0054 tf0054 16384 6月 16 01:50 ..
drwxrwxr-x 6 tf0054 tf0054 4096 6月 16 01:50 .svn
[tf0054@divers-high tf0054_mm]$ cp -pir ~/btmail/post_bgnote.pl ./
[tf0054@divers-high tf0054_mm]$ ls -la
合計 28
drwxrwxr-x 3 tf0054 tf0054 4096 6月 16 01:50 .
drwxr-xr-x 28 tf0054 tf0054 16384 6月 16 01:50 ..
drwxrwxr-x 6 tf0054 tf0054 4096 6月 16 01:50 .svn
-rwxr-xr-x 1 tf0054 tf0054 3237 6月 16 01:23 post_bgnote.pl
[tf0054@divers-high tf0054_mm]$ svn add post_bgnote.pl
A post_bgnote.pl
[tf0054@divers-high tf0054_mm]$ svn commit -m 'First Add'
[tf0054@divers-high tf0054_mm]$
ちなみに、UTF8で入れるときちんと日本語のコメントも入りました。
via kwout
[f0054@divers-high ~]$ svn checkout http://tf0054.unfuddle.com/svn/tf0054_mm/
認証領域: <http://tf0054.unfuddle.com:80> Unfuddle Subversion Repository
'tf0054' のパスワード:
リビジョン 0 をチェックアウトしました。
[tf0054@divers-high ~]$ cd tf0054_mm/
[tf0054@divers-high tf0054_mm]$ ls -la
合計 24
drwxrwxr-x 3 tf0054 tf0054 4096 6月 16 01:50 .
drwxr-xr-x 28 tf0054 tf0054 16384 6月 16 01:50 ..
drwxrwxr-x 6 tf0054 tf0054 4096 6月 16 01:50 .svn
[tf0054@divers-high tf0054_mm]$ cp -pir ~/btmail/post_bgnote.pl ./
[tf0054@divers-high tf0054_mm]$ ls -la
合計 28
drwxrwxr-x 3 tf0054 tf0054 4096 6月 16 01:50 .
drwxr-xr-x 28 tf0054 tf0054 16384 6月 16 01:50 ..
drwxrwxr-x 6 tf0054 tf0054 4096 6月 16 01:50 .svn
-rwxr-xr-x 1 tf0054 tf0054 3237 6月 16 01:23 post_bgnote.pl
[tf0054@divers-high tf0054_mm]$ svn add post_bgnote.pl
A post_bgnote.pl
[tf0054@divers-high tf0054_mm]$ svn commit -m 'First Add'
[tf0054@divers-high tf0054_mm]$
ちなみに、UTF8で入れるときちんと日本語のコメントも入りました。
土曜日, 6月 14, 2008
[Linux] 添付可能なメール送信"コマンド"
木曜日, 6月 05, 2008
[Linux] PostgreSQL+LVM
月曜日, 5月 26, 2008
[Linux] Selenium GRID example
Selenium GRIDのexampleを動かしてみた。
これでexamples\java\src\com\thoughtworks\selenium\grid\examples\java以下のファイルをいぢれば、やりたいテストができる、、のかな。
あと、、Proxyを通してテストをさせる(RCさんの上位にProxyを置く)にはどうするのだろう。setproxyタスク(?)でもうまく行かないし。。
D:\selenium-grid-1.0\examples\java>ant run-in-sequence
これでexamples\java\src\com\thoughtworks\selenium\grid\examples\java以下のファイルをいぢれば、やりたいテストができる、、のかな。
あと、、Proxyを通してテストをさせる(RCさんの上位にProxyを置く)にはどうするのだろう。setproxyタスク(?)でもうまく行かないし。。
<target ... >
<setproxy proxyhost="xxx.digipepper.com" proxyport="8080"/>
日曜日, 5月 25, 2008
[Linux] Selenium HTMLSuite
テスト自体はテストケースと呼ばれ、作ったいくつかのテストケースをまとめて実行させるため、それらのリンクを書いたやつのことをテストスイートというらしい。
その後者、スイートを自動生成したり、ブラウザを使い分けて実行したりすることができるJavaライブラリとしてのエクステンションがあったのでメモ。
その後者、スイートを自動生成したり、ブラウザを使い分けて実行したりすることができるJavaライブラリとしてのエクステンションがあったのでメモ。
|
[Linux] Selenium GRID
自動運転のピアノなごとく、ブラウザを操作して各種テストを行うSeluniumですが、複数のブラウザを同時に操作してテスト、するにはこのミドルでやるそうです。
で、ちょっとやってみたとき、先に入れていたFirefox3(RC1)をうまく操作してくれなかった。。でIEを使うようにしたら無事動いた(と思う)。変更はbuild.xmlに以下。
D:\selenium-grid-1.0>diff build.xml.f build.xml昨今AJAXなサイトが増えてきており、、、JMeterでは少しつらくなってきた気がしています。無論がんばってシナリオを作ればよいのですが。
10c10
< <property name="browser" value="*chrome" />
---
> <property name="browser" value="*iehta" />
75c75
< <property name="environment" value="*chrome"/>
---
> <property name="environment" value="*iehta"/>
D:\selenium-grid-1.0>
土曜日, 5月 24, 2008
[Flash] APE
Flashの物理エンジンというものがあるらしい。Flashコンテンツって自然界の動きをシミュレートしてみせることでかっこよくなるのだと思うので、その意味ではこんなのが大事なのだろうと思う。
月曜日, 5月 19, 2008
水曜日, 5月 14, 2008
[Life] wgetをproxy経由で
Windowsでwgetを使うとき、PROXY指定をしたかったら以下のように。
意外にすぐわからなくなるのでメモ。
set http_proxy=squid.xxx.com:8080
意外にすぐわからなくなるのでメモ。
土曜日, 5月 10, 2008
[Life] DISQUS
ブログのコメント管理だけを切り出したサービス。コメントされたらメールがきて、それに返信したらスレッドに追記されるとか。。。
日本語コメントはきちんと見えることを確認!
が、(やはりといえばそうだが)返信は日本語が通りませんでした。。
プロジェクト管理で使っているMantisもそうなのですが、メールでコメントを返信できるととっても便利なので、、とても惜しい!です。
が、(やはりといえばそうだが)返信は日本語が通りませんでした。。
プロジェクト管理で使っているMantisもそうなのですが、メールでコメントを返信できるととっても便利なので、、とても惜しい!です。
登録:
投稿 (Atom)
