関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
<< WildcardTermEnumを使う | main | クチコミの評判の悪い店のランキングを下げる >>
QueryParserでMatchAllDocsQueryを使う
少し古い話になるが、Lucene 2.1からQueryParserに"*:*"という文字列を指定すると、MatchAllDocsQueryに翻訳してくれる機能が追加された:

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

MatchAllDocsQueryはインデックス中の全ドキュメントを取得するためのQueryである。そのものずばり「インデックス中の全ドキュメントを取得する」目的で使用できるのはもちろんのこと、MUST_NOTと共に使用して「指定した単語やフレーズを含まない全ドキュメントを取得する」のにも使用できる(Lucene本 P.194-195)。

"*:*"がMatchAllDocsQueryに解釈される様子は、次のプログラムで簡単に確認できる:



QueryParser qp = new QueryParser( F, analyzer );
Query query = qp.parse( "*:*" );
System.out.println( "*:* => " + query.toString() );



このプログラムを実行すると、次のようになる:



*:* => MatchAllDocsQuery



「安倍晋三」を含まないすべてのドキュメントを得るためのQueryを取得するには、次のようにすればよい:



Query query = qp.parse( "*:* NOT 安倍晋三" );


| 関口宏司 | プロとして恥ずかしくないLuceneの大原則 | 17:29 | comments(0) | trackbacks(0) |









http://lucene.jugem.jp/trackback/140
+ Solrによるブログ内検索
+ PROFILE
      1
2345678
9101112131415
16171819202122
23242526272829
30      
<< September 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