2017.12.15 Friday
スポンサーサイト
一定期間更新がないため広告を表示しています
| スポンサードリンク | - | | - | - |
関口宏司のLuceneブログOSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
2010.06.25 Friday
Solr 1.4.1 リリース / Apache Forrest (メモ)
本日Solr 1.4.1(1.4.0のバグフィックス)がリリースされた。
それに伴い、SolrのWebサイトが更新される(What's Newなど)のだが、WebサイトはApache Forrestを使ってビルドしている。ここでリリースマネージャのMark Miller氏がビルドにはまった(?)のでメモ。 ビルド時にエラーになってしまうという問題だが、原因はJava 6を使っていたから。ForrestはSunのJava 5でなければいけない。理由は、Forrestは内部でSunのクラス(sun.xxx.yyy.Zzz)を使っていてそれがJava 5で提供されているものだから。 2010.06.10 Thursday
Solrのモニタリングツール - New Relic RPM Lite
http://www.newrelic.com/solr.html
インストールは上記URLからユーザ登録を行い、フリー版のRPM LiteのZIPファイルをダウンロードして解凍する。そして、通常次のようにSolrを(Jettyで)起動するところを: $ java -jar start.jar 次のようにJava Agentを指定して起動するように変更する: $ java -javaagent:/path/to/newrelic.jar -jar start.jar するとNew Relicに作成したユーザアカウントの画面にSolrの稼働状況が表示される。 2010.06.05 Saturday
search-lucene.com
Lucene/SolrのコミッターのOtisさんのSematext社制作によるsearch-lucene.comは、Lucene/Solr/Nutchなどのメーリングリストや、ソースコード/Javadocなどが検索できる。auto-completion機能付きなので、メソッド名などの最初の数文字を入力するとGoogleサジェストのように検索窓の下に検索文字列候補がドロップダウン表示されるのでなかなか便利。
2010.06.03 Thursday
QueryParser.setAutoGeneratePhraseQueries()メソッド(3.1)
CJKなどの単語間がスペースで区切られていない文字列をQueryParserでparse()すると、Analyzerにより複数の単語が出力される文字列ではPhraseQueryが生成されるのがこれまでのQueryParserの仕様であった。プログラム例を示す:
public static void main(String[] args) throws Exception { QueryParser qp = new QueryParser( "f", analyzer ); //qp.setDefaultOperator( Operator.AND ); Query query = qp.parse( "こんにちは" ); System.out.println( query.getClass().getSimpleName() ); System.out.println( query.toString() ); } 実行結果は次のようになる: PhraseQuery f:"こん んに にち ちは" Queryクラス名からPhraseQueryが生成されているのがわかる。これは、「こん」「んに」「にち」「ちは」という5つの単語がこの順序ですきまなく並んでいる文章を検索するQueryオブジェクトだ。 ところが現在、デフォルトでPhraseQueryではなくBooleanQueryを生成すべし、という提案がなされている: https://issues.apache.org/jira/browse/LUCENE-2458 パッチがポストされているので、試しにこれを使ってみよう。プログラムは次のようになる: static Version v = Version.LUCENE_31; static Analyzer analyzer = new CJKAnalyzer( v ); public static void main(String[] args) throws Exception { QueryParser qp = new QueryParser( v, "f", analyzer ); //qp.setDefaultOperator( Operator.AND ); //qp.setAutoGeneratePhraseQueries( true ); Query query = qp.parse( "こんにちは" ); System.out.println( query.getClass().getSimpleName() ); System.out.println( query.toString() ); } このプログラムの実行結果は次のようになり、BooleanQueryが生成されていることがわかる: BooleanQuery f:こん f:んに f:にち f:ちは このとき、各単語はQueryParserのデフォルトオペレーターが採用されてBooleanQueryが組み立てられる。デフォルトオペレーターは上のコメントアウトされている2行のうちの1行目を有効にすればANDに変更できる。ANDにすると次のようになる: BooleanQuery +f:こん +f:んに +f:にち +f:ちは 提案では、Lucene 3.1からこのようにしたらどうかという意見が出されている。上のプログラムでLUCENE_31の部分をLUCENE_29に変えると、従来通りPhraseQueryが出力されるようになる。またLucene 3.1であっても、上のプログラムでコメントアウトした2行目を有効にしてもPhraseQueryを出力させることが可能である。 |
+ Solrによるブログ内検索
+ PROFILE
+ LINKS
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
+ RECOMMEND
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
+ SPONSORED LINKS
|
(C) 2024 ブログ JUGEM Some Rights Reserved.
|
PAGE TOP |