関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
<< Lucene 2.2のPre-analyzed Fields | main | deprecatedとなったQueryFilter >>
CJKAnalyzerを使って強調表示を行う
梅雨の合間の、青空が気持ちのいいある平日。自宅でこのブログの記事を執筆しようとしたそのとき、電話が鳴った。ただ「はい」とだけ言い、受話器の向こうの声に耳を澄ます。最近の多くの人にも当てはまることだと想像するが、近頃私は自宅の電話に出るときに意識して名乗らないようにしている。かなりの確率でセールスの電話であったり、間違い電話で名乗ったとたんに無言で切られ、一部の個人情報を伝えてしまったことに納得のいかない思いをすることがしばしばだからである。

しかし電話は若い元気な女性の声で、

「いつもお世話になっております。リクルートの××です」と名乗った。

なぜ自宅に?という思いと同時に、仕事の電話かもしれないではないかという計算が働く。私も、

「お世話になっております。関口です」とそつなく返した。

しかしほどなくして、(こちらの)仕事になるような電話ではないことが判明した。電話の女性はタウンワークの者だといい、求人広告を掲載しませんか、と勧誘してきたのである。

この後笑い話となる二人の会話がしばらく成立したのは、第一に彼女の方に原因があることは間違いないが、私の方にもその布石となる出来事がその数時間前にあったのだった。

その出来事とは弊社丸の内オフィスにかかってきたやはり一本の電話である。それも果たして求人広告を出しませんか、という別の業者からの電話であった。

最近の私の頭の中にはいつも求人のことはあるにはある。しかし、日ごろの忙しさにかまけて実行動はなかなか取れていなかった。だから普段セールスの電話は歓迎しない私も(これも一種のセールスの電話であろう)、この機会にシステム(料金体系とか)を聞いてみようか、という気分にそのときはなっていた。そしてその業者から一通り説明を聞いた後「じゃあ、検討します」とお決まりの文句を言って電話を切ったのが数時間前のことだ。

そんなことがあったので、タウンワークからの電話を受け取ったときも「彼らの嗅覚も大したものだなあ、こんなタイミングで電話してくるなんて」と感心しただけだった。

「求人は考えていないこともないのですが、雑誌に広告を出すというほど大げさなことは考えていないのですが」と正直な気持ちをまず話した。

「はい、とりあえず、本日はお店におうかがいさせていただき、ごあいさつをさせていただきたいのですが、ご都合はいかがでしょうか」

オフィスをお店と表現するところなどさすがタウンワークである。へんな感心をしつつ、しかしここはお店でもオフィスでもなく自宅であることを思い出した。自宅にごあいさつにこられると面倒なので、とりあえず電話で聞けるだけの情報を聞きたいと思った私は、別の質問を続けることにした。

「しかし、タウンワークに求人出して人が来ますかね?」

「はい、たくさん来ますよー」

「そんなもんですかねー。広告出すといっても、ただじゃないんですよね?」

「はい、1万×千円です」

「なるほどー。それで期間的には?」

「一週間です」

「一週間ねー。それで人が来ますかね?」

「はい、これまで広告を出したことがなければ、絶対に効果があります!」電話の女性の声はますます元気だ。

しかし私は納得がいかなかった。なぜなら数時間前の別の求人広告業者のシステムの説明では、×十万円・半年間のWeb掲載で2〜3人紹介できますという話で、あたかも半年間で2〜3人紹介できることがすごいことのように話していたからだった。

Webの半年間掲載でそれだけなのに地域密着型のタウンワークにたったの一週間掲載でそんなに人が集まるものだろうか。なにかがおかしい、そう感じた私は、電話を取ったときに最初に感じた違和感に正対することにした。そして、このように尋ねた。

「そうですか。ところで、こちらの電話番号はどのようにお調べになったのでしょう?」

「はい、私は××と××の地域を担当しておりまして、以前お店におうかがいしたときに店長さんがいらっしゃらなかったので、本日改めましてお電話をさせていただきました!」

私は社長である前に一技術者であることに誇りを持って仕事をしている人間である。しかし名刺には社長と印刷してあるので、社長と呼ばれることもあり、その自覚もなくはない。しかし店長といわれたのは今回が初めてである。いよいよおかしい。そこで思い切って、さらに尋ねたのだった。

「そうですか。でもここはお店とかではなくて・・・。失礼ですがひょっとしてお間違いではありませんか?」

「あれ、サーティワンアイスクリームさんじゃないんですか」

「あー、ちがいますねー」PCの画面を見るともう十分くらい話している。なんということだろう。

「きゃー、失礼しました。すみませんが御社名はなんとおっしゃるのでしょうか」

「ロンウイットです」

「失礼しました。ロンウイット様、求人広告はいかがですか」

さすがリクルートの営業だ。この女性を採用しようか、ふとそんな思いがよぎったりもした。しかし弊社がまず欲しいのは営業ではなく技術者なので、その考えは思いとどまった。

その後私は弊社のような業種がタウンワークに広告を出して果たして人が集まるのか、それに対して女性は大丈夫、コンピュータ業界の会社もタウンワークで人を集めていますよ、という議論でさらに5分ほど費やし、「じゃあ、検討します」というやはりお決まりの文句で受話器を置いたのであった。はー。




さて、本題に話を移すが、今回は最近まで気がつかなかったLuceneの改善点について話そうと思って書き始めたのだった。それはHighlighterのことである。

これはLucene本にも書いたことが、CJKAnalyzerはHighlighterと組み合わせて使用することができない。しかしそれはLucene 2.0までの話で、Lucene 2.1からはCJKAnalyzerでもHighlighterが正しく動作するように改善されたのだった。うかつな話で、私はLuceneが2.2になった最近までそのことに気がつかなかった。

この修正は次のURLで参照できる:

http://issues.apache.org/jira/browse/LUCENE-627

では早速試してみよう。以下はCJKAnalyzerを使ったHighlighterのサンプルプログラムである:



public class TestHighlighter {

private static final String CONTENT = "ここに適当な文章を挿入";
private static final String QUERY_STRING = "ここに適当なキーワードを挿入";
private static final String F = "f";
private static Analyzer analyzer = new CJKAnalyzer();

public static void main(String[] args) throws ParseException, IOException {
QueryParser qp = new QueryParser( F, analyzer );
Query query = qp.parse( QUERY_STRING );
Scorer scorer = new QueryScorer( query, F );
Highlighter h = new Highlighter( scorer );
System.out.println( h.getBestFragment( analyzer, F, CONTENT ) );
}
}



上記の赤字の部分に適当な文章(長文)と検索キーワードをそれぞれ埋め込んで実行する。たとえば文章として適当に選んだニュース記事と検索キーワードに「赤城 事務所費」と記述してコンパイル・実行すると、Lucene 2.1以降では次のようになる:



の経常経費を計上していた点について、<B>赤城</B>農相は、水戸市にある自民党茨城県
第1選挙区支部<B>事務所</B>を使った後援会活動の経費も合算し、報告していると釈明
した。実家は「祖父の代から後援会活動の中核の場所で、会合を開いている」と強調。
<B>事務所費</B>



正しく強調表示されているのがわかるだろう。しかしLucene 2.0以前のバージョンでは、次のように強調表示が正しく動作しない。



、<B>赤城農相は</B>、水戸市にある自民党茨城県第1<B>選挙区支部事務所を使った後援
会活動の経費も合算し</B>、報告していると釈明した。実家は「祖父の代から後援会活動
の中核の場所で、会合を開いている」と強調。<B>事務所費については</B>


| 関口宏司 | Lucene自由自在 | 09:13 | comments(1) | trackbacks(0) |
http://www.yeezyboost350shoes.us.com/ yeezy sneakers
http://www.longchampbag.us.com/ longchamp backpack
http://www.pandorajewelryrings.us.com/ pandora earrings
http://www.nikeairmax-90.us.com/ air max 95
http://www.kyrie-4.us.com/ kyrie 4
http://www.salomonspeedcross3.us.com/ salomon speedcross 4
http://www.fitflops-sale.us.com/ fitflop sale
http://www.jordan11spacejams.us.com/ jordan 4
http://www.adidasnmdrunnerr1.us.com/ adidas yeezy
http://www.katespadepurses.us.com/ kate spade backpack
http://www.nikeairvapormaxflyknit.us.com/ nike air force 1
http://www.adidas-ultraboost.us.com/ adidas ultra boost
http://www.fitflopsshoes.us.com/ fitflop shoes
http://www.louboutinredbottoms.us.com/ christian louboutin sale
http://www.kd10-shoes.us.com/ kd shoes
http://www.curry4-shoes.us.com/ kevin durant shoes
http://www.pumafentyrihannashoes.us.com/ puma running shoes
http://www.hermesbirkin-handbags.us.com/ hermes bag
http://www.lebron15-shoes.us.com/ basketball shoes
http://www.adidasyeezy-350.us.com/ adidas yeezy
http://www.pandora-jewelrysale.us.com/ pandora
http://www.jordans11shoes.us.com/ air jordan
http://www.airmax90shoes.us.com/ nike vapor max
http://www.birkenstocksandalssale.us.com/ birkenstock clearance
http://www.pandorajewelryscharms.us.com/ pandora jewelry official site
ドリフトliuyuzhen
| salomon shoes | 2018/03/25 1:36 PM |









http://lucene.jugem.jp/trackback/136
+ Solrによるブログ内検索
+ PROFILE
 123456
78910111213
14151617181920
21222324252627
28293031   
<< October 2018 >>
+ LINKS
検索エンジン製品 - 比較のポイント
商用検索エンジンを購入した企業担当者は読まないでください。ショックを受けますから・・・
>>製品比較 10のポイント
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
+ RECOMMEND
Lucene in Action
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless
FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
qrcode
+ SPONSORED LINKS