CLOVER🍀

That was when it all began.

Lucene

LuceneのAnalyzer/Tokenizerを、フィールドごとに切り替える

久々のLuceneネタです。Luceneを使ってプログラムを書く時に必ずAnalyzerが登場するわけですが、例えば Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); // インデックス作成 IndexWriterConfig config = new IndexWriterConfig(Version…

LuceneのSearcherManagerを使う

Lucene 3.5の時に追加されたという、SearcherManagerを使ってみたいと思います。そういえば、なんか追加されてたなぁという気がしたので。Lucene 3.5 と Solr 3.5 - 大幅な RAM 削減,SearchManager,ディープページングのサポート http://www.infoq.com/jp/…

LuceneのTerm Vectorを使ってみる

もともとは、Highlighterを使った時にサンプルでTerm Vectorが特別扱いされていたのがきっかけで、ちょっとLuceneのTerm Vectorを使ってみることにしました。そもそもTerm Vectorというのは何か?という話ですが、 Documentの特定のフィールドにおける、出現…

LuceneのHighlighterを使ってみる

Luceneに搭載されている、Highlighterを使ってみます。Highlighter http://lucene.apache.org/core/4_4_0/highlighter/index.html今回は、先に利用したコードから。とりあえず、Document、インデックスは作成済みのものとします。Queryも作成してIndexSearch…

LuceneでJOINを使ってみる

Luceneには、JOINを行うAPIがあります。Join API http://lucene.apache.org/core/4_4_0/join/index.htmlまあ、RDBMS的なJOINを期待すると痛い目をみそうな感じですが、知っててもいいのかなぁ?今回参考にしたのは、Join API自体のパッケージの説明 http://l…

Clojure/lucene-kuromojiでテキストマイニング入門 〜形態素解析からワードカウントまで〜

ClojureとKuromojiを使った、面白そうなエントリがあったのでClojure/kuromojiでテキストマイニング入門 〜形態素解析からワードカウントまで〜 http://antibayesian.hateblo.jp/entry/2013/09/10/231334Luceneに入っているKuromojiを使って書き直してみまし…

LuceneのGroupingを使ってみる

LuceneのGrouping機能について。grouping http://lucene.apache.org/core/4_4_0/grouping/index.html検索結果を、特定のフィールドでグルーピングする機能みたいです。SolrでのGroupingの良いイメージがこちらにあったので、理解の参考にさせていただきまし…

Luceneのファセットを使ってみる

今回は、Luceneのファセット機能を使って遊んでみました。ファセットって、あれですね。イメージ的には、Webサイトによくある、カテゴリ単位なんかで件数が一緒に表示されているやつです。まずは、API Reference。Lucene Facet http://lucene.apache.org/cor…

Luceneのスコア計算式を表示する

久々にLucene。今回は、ちょっとLuceneのスコア計算式を見てみたいと思います。オフィシャルのJavadocには、何やら難しい式が載っているのですが…よくわかりません。TFIDFSimilarity http://lucene.apache.org/core/4_4_0/core/org/apache/lucene/search/sim…

NGramとEdgeNGramなTokenizerとTokenFilterを使ってみる

Luceneをちょこちょこ勉強している間に、Lucene 4.4.0がリリースされましたね。オフィシャルサイトのトップからは、3.6系のダウンロードリンクが消えてしまいましたよ。Apache Lucene http://lucene.apache.org/で、今回はN-Gramを使ってみようと思ったので…

LuceneのSynonymFilterを使う

Luceneで類義語の定義を行う、SynonymFilterを使ってみました。Solrでもよく目にするので、知っておいて損はないでしょう。主に使うのは、 SynonymFilterクラス SynonymMapクラス SynonymMap.Builderクラス になります。Solrの記法を使って類義語の定義を書…

LuceneのCollectorとページング

LuceneのIndexSearcherのsearchメソッドに、Collectorという抽象クラスを取るものがあるのですが、こちらの書籍では「低レベルAPI」的な扱いをされていたので(正確には、その前身のHitCollectorが、ですが)なんとなく飛ばしていました。Apache Lucene 入門…

LuceneのFilterを使う

ソートに続いて、今度はFilterで遊んでみました。Filterってなんだ?という話ですが、IndexSearcher#searchメソッドの引数にQueryと一緒に渡して、検索結果を絞り込んだり、結果をキャッシュして高速化させたりするというのが主な使い方みたいです。Queryと…

Lucene Kuromojiが使っているIPA辞書の場所

ここにあるのをIvyでダウンロードして、ビルドして使ってるみたい。http://mecab.googlecode.com/files/mecab-ipadic-2.7.0-20070801.tar.gz

JapaneseAnalyzer/Tokenizer(Kuromoji)とCJKAnalyzer/Tokenizerを簡単に試すスクリプト

以前に書いたエントリ、LuceneのAnalyzerで遊んでみる http://d.hatena.ne.jp/Kazuhira/20130601/1370103317をちょっと簡単にしてGroovyに移植したものです。自分が、使いそうな気がしたので…。使うのは、JapaneseAnalyzer(Kuromoji)とCJKAnalyzerだけです…

Luceneでソート

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

LuceneのClassic QueryParserを使ってみる

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

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

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

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

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

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

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

LuceneのAnalyzerで遊んでみる

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

Infinispan as a storage for Lucene indexes

このひとつ前のエントリの続きです。Infinispanの以下のドキュメントについて、自分の理解のために英訳していきたいと思います。Infinispan as a storage for Lucene indexes https://docs.jboss.org/author/display/ISPN/Infinispan+as+a+storage+for+Lucen…

InfinispanをApache LuceneのDirectoryとして使う

Infinispanのクエリをもうちょっと勉強してみようと思い、その時に合わせてLuceneも覚えられたらいいなぁということで。で、現時点でのLuceneの最新版は4.3.0なのですが、 Apache Lucene http://lucene.apache.org/core/index.htmlInfinispanでクエリを使う…