第三方提供的Query对象(RegexQuery)

由于网速不行,所以没法下载那些regex的包,也就没调试成功。

 

导入类包import org.apache.lucene.search.regex. *
………………
public   static   void  regexQuery(String path)  throws  IOException 
    { 
        IndexWriter writer 
=   new  IndexWriter(path,  new  StandardAnalyzer(),  true ); 
        writer.setUseCompoundFile(
false ); 

        Document doc1 
=   new  Document(); 
        Document doc2 
=   new  Document(); 
        Document doc3 
=   new  Document(); 

        Field f1 
=   new  Field( " url "
        
" http://www.abc.com/product?typeid=1&category=10&item=34 "
        Field.Store.YES, Field.Index.TOKENIZED); 
        Field f2 
=   new  Field( " url "
        
" http://www.def.com/product/show?typeid=3&catagory=10&item=23 "
        Field.Store.YES, Field.Index.TOKENIZED); 
        Field f3 
=   new  Field( 
        
" url "
        
" http://www.ghi.com/product/list?catagory=4&typeid=19&order=32 "
        Field.Store.YES, Field.Index.TOKENIZED); 
        doc1.add(f1); 
        doc2.add(f2); 
        doc3.add(f3); 
        
        writer.addDocument(doc1); 
        writer.addDocument(doc2); 
        writer.addDocument(doc3); 

        writer.close(); 

        IndexSearcher searcher 
=   new  IndexSearcher(path); 
    
//   创建一个正则表达式,用于匹配域名为abc.com的地址 
        String regex  =   " http://[a-z]{1,3}/.abc/.com/.* "

        Term t 
=   new  Term( " url " , regex); 
        
        RegexQuery query 
=   new  RegexQuery(t); 
        Query q 
=   new  TermQuery( new  Term( " url " " http " )); 
        Hits hits 
=  searcher.search(query); 
        
for  ( int  i  =   0 ; i   <  hits.length(); i ++ ) { 
        System.out.println(hits.doc(i)); 
        } 
        searcher.close(); 
    } 

这里用到了正则表达式,还有待研究!!!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值