DANCE WITH JAVA

          開發出高質量的系統

          常用鏈接

          統計

          積分與排名

          好友之家

          最新評論

          lucene的豐富的各種查詢(一)

          lucene支持十分豐富的查詢,這里列寫其中一些比較常用的查詢的用法。
          term查詢、queryParser查詢 ,booleanQuery
          package search;

          import org.apache.lucene.analysis.standard.StandardAnalyzer;
          import org.apache.lucene.index.Term;
          import org.apache.lucene.queryParser.QueryParser;
          import org.apache.lucene.search.BooleanQuery;
          import org.apache.lucene.search.Hits;
          import org.apache.lucene.search.IndexSearcher;
          import org.apache.lucene.search.Query;
          import org.apache.lucene.search.TermQuery;
          import org.apache.lucene.store.Directory;
          import org.apache.lucene.store.FSDirectory;

          public class Searcher {
              
          public static void termQuery() throws Exception{
                  Directory directory 
          = FSDirectory.getDirectory("./index"false); 
                  IndexSearcher searcher 
          = new IndexSearcher(directory);
                  Term t 
          = new Term("body","document");
                  Query query 
          = new TermQuery(t);
                  Hits hits 
          = searcher.search(query);
                  System.out.println(hits.length());
              }

              
          public static void queryParser() throws Exception{
                  Directory directory 
          = FSDirectory.getDirectory("./index"false); 
                  IndexSearcher searcher 
          = new IndexSearcher(directory);
                  Query query 
          = QueryParser.parse("text","body",new StandardAnalyzer());
                  Hits hits 
          = searcher.search(query);
                  System.out.println(hits.length());
              }

              
          public static void booleanQuery() throws Exception{
                  Query parseQuery 
          = QueryParser.parse("text","body",new StandardAnalyzer());
                  Term t 
          = new Term("body","document");
                  Query termQuery 
          = new TermQuery(t);
                  BooleanQuery boolQuery 
          = new BooleanQuery();
                  boolQuery.add(parseQuery,
          true,false);
                  boolQuery.add(termQuery,
          true,false);
                  
                  Directory directory 
          = FSDirectory.getDirectory("./index"false); 
                  IndexSearcher searcher 
          = new IndexSearcher(directory);
                  Hits hits 
          = searcher.search(boolQuery);
                  System.out.println(hits.length());
              }

              
          public static void main(String[] args) throws Exception{
                  termQuery();
                  queryParser();
                  booleanQuery();
              }

          }


          posted on 2007-06-21 15:06 dreamstone 閱讀(3265) 評論(6)  編輯  收藏 所屬分類: 搜索引擎lucence

          評論

          # re: lucene的豐富的各種查詢(一) 2008-06-18 17:29 eitrade

          收藏了..  回復  更多評論   

          # re: lucene的豐富的各種查詢(一) 2008-06-18 17:29 3wdotec

          不錯..  回復  更多評論   

          # re: lucene的豐富的各種查詢(一) 2008-06-18 17:29 環保袋

          謝謝..  回復  更多評論   

          # re: lucene的豐富的各種查詢(一) 2008-07-02 10:00 renkui

          謝謝分享  回復  更多評論   

          # re: lucene的豐富的各種查詢(一) 2009-06-12 13:54 min

          也學了LUcene,自己開發了個小型的系統,
          http://www.tudoupian.com
          但是效果不怎么好,看了你這篇才知道Lucene查詢有這么靈活。
            回復  更多評論   

          # re: lucene的豐富的各種查詢(一) 2009-06-12 13:55 min

          怎么結合 term booleanQuery?
          想給 http://www.tudoupian.com 做個價格范圍的查詢,聽說rangeQuery很慢,
            回復  更多評論   

          主站蜘蛛池模板: 高邑县| 安吉县| 湘潭县| 青冈县| 江华| 海伦市| 韩城市| 阿克陶县| 弋阳县| 沈丘县| 鹰潭市| 广汉市| 静海县| 凤城市| 安义县| 海盐县| 桐乡市| 怀安县| 子洲县| 虞城县| 阜南县| 青龙| 荣昌县| 铁力市| 三江| 利津县| 平乡县| 新兴县| 五寨县| 浦北县| 保亭| 阿拉善盟| 措美县| 将乐县| 东方市| 旺苍县| 蒲城县| 普安县| 江口县| 宜良县| 枝江市|