<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    1.    排序
    1.1. Sort類
    public Sort()

    public Sort(String field)

    public Sort(String field,Boolean reverse)  //默認為false,降序排序

    public Sort(String[] fields)

    public Sort(SortField field)

    public Sort(SortField[] fields)

    Sort sort=new Sort(“bookname”);按照“bookname“這個Field值進行降序排序

    Sort sort=new Sort(“bookname”,true) //升序排序

    Sort sort=new Sort(new String[]{“bookNumber”,”bookname”,”publishdate”});按照三個Field進行排序,但無法指定升序排序,所以用SortField

    1.2. SortField類
    public SortField(String field)

    public SortField(String field,Boolean reverse)

    public SortField(String field,int type) //type表示當前Field值的類型

    public SortField(String field,int type,boolean reverse)  //默認為false,升序

    Field值的類型:SortField.STRING、SortField.INT、SortField.FLOAT

    SortField sf1=new SortField(“bookNumber”,SortField.INT,false);

    SortField sf2=new SortField(“bookname”,SortField.STRING,false);

    1.3. 指定排序的法則
    1.3.1.按照文檔的得分降序排序
    Hits hits=searcher.search(query,Sort.RELEVANCE);

    1.3.2.按文檔的內部ID升序排序
    Hits hits=searcher.search(query, Sort.INDEXORDER);

    1.3.3.按照一個Field來排序
    Sort sort=new Sort();

    SortField sf=new SortField(“bookNumber”,SortField.INT,false);

    sort.setSort(sf);

    Hits hits=searcher.search(query,sort);

    1.3.4.按照多個Field來排序
    Sort sort=new Sort();

    SortField sf1=new SortField(“bookNumber”,SortField.INT,false);//升序

    SortField sf2=new SortField(“publishdate”,SortField.STRING,true);//降序

    sort.setSort(new SortField[]{sf1,sf2});

    Hits hits=searcher.search(query,sort);

    1.3.5.改變SortField中的Locale信息
    String str1=”我”; String str2=”你”;

    Collator co1=Collator.getInstance(Locale.CHINA);

    Collator co2=Collator.getInstance(Locale.JAPAN);

    System.out.println(Locale.CHINA+”:”+co1.compare(str1,str2));

    System.out.println(Locale.JAPAN+”:”+co2.compare(str1,str2));

    輸出結果為:

    zh_CN:1

    ja_JP:-1

    所以

    public SortField(String field,Locale locale)

    public SortField(String field,Locale locale,boolean reverse)

    2.    過濾器
    使用public Hits search(Query query,Filter filter)

    (1)簡單過濾

    Hits hits=searcher.search(query,new AdvancedSecurityFilter());//過濾掉securitylevel為0的結果

    (2)范圍過濾—RangeFilter

    只顯示中間的

    RangeFilter filter=new RangeFilter(“publishdate”,”1970-01-01”,”1998-12-31”,true,true”);

    Hits hits=searcher.search(query,filter);

     

    無上邊界

    public static RangeFilter More(String fieldname,String lowerTerm)

     

    無下邊界

    public static RangeFilter Less(String fieldname,String upperTerm)

    (3)在結果中查詢QueryFilter

    RangeQuery q=new RangeQuery(new Term(“publicshdate”,”1970-01-01”),

    new Term(“publishdate”,”1999-01-01”),true);

    QueryFilter filter=new QueryFilter(q);

    Hits hits=searcher.search(query,filter);

    3.    分析器Analysis
    3.1. 自帶分析器和過濾器
    Ø         標準過濾器:StandardAnalyzer

    Ø         大小寫轉換器:LowerCaseFilter

    Ø         忽略詞過濾器:StopFilter

    public StopFilter(TokenStream input,String [] stopWords)

    public StopFilter(TokenStream in,String [] stopWords,boolean ignoreCase)

    public StopFilter(TokenStream input,Set stopWords,boolean ignoreCase)

    public StopFilter(TokenStream in, Set stopWords)

    其中,參數TokenStream代表當前正在進行處理的流;String類型的數組代表一個用數組表示的忽略詞集合;Set類型的參數與String一樣,是用來表示忽略詞集合的;boolean表示當與忽略詞集合中的詞進行匹配時,是否需要忽略大小寫。

    Ø         長度過濾器:LengthFilter

    Ø         PerFieldAnalyzerWrapper

    Ø         WhitespaceAnalyzer

    String str="str1 str2 str3";

           StringReader reader=new StringReader(str);

           Analyzer anlyzer=new WhitespaceAnalyzer();

          

           TokenStream ts=anlyzer.tokenStream("", reader);

           Token t=null;

           while( (t=ts.next())!=null ){

               System.out.println(t.termText());

           }

    3.2. 第三方過分析器
    Ø         單字分詞

    Ø         二分法:CJKAnalyzer、中科院ICTCLAS分詞、JE分詞

    Ø         詞典分詞

    3.2.1.JE分詞用法
    3.2.1.1.    示例
    import jeasy.analysis.MMAnalyzer;

    IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new MMAnalyzer()

    , true);

    String str=" Lucene是一個全文檢索引擎的架構,"+

               "提供了完整的查詢引擎和索引引擎。Lucene以其方便使用、快" +

               "速實施以及靈活性受到廣泛的關注。它可以方便地嵌入到各種應用" +

               "中實現針對應用的全文索引、檢索功能,本總結使用lucene--2.3.2。";

           MMAnalyzer analyzer=new MMAnalyzer();

           try{

               System.out.println(analyzer.segment(str, "|"));

           }

           catch(Exception e)

           {

               e.printStackTrace();

           }

    輸出結果:lucene|一個|全文|檢索|引擎|架構|提供|完整|查詢|。。。。

    3.2.1.2.    設定正向最大匹配的字數
    MMAnalyzer analyzer=new MMAnalyzer(4);

    3.2.1.3.    添加新詞
    MMAnalyzer.addWord(String word);

    MMAnalyzer.addDictionary(Reader reader);

     

    MMAnalyzer analyzer=new MMAnalyzer();

    MMAnalyzer.addWord("邁克爾雷第");

     

    4.    索引的合并
    RAMDirectory RAMDir=new RAMDirectory();

    IndexWriter writer = new IndexWriter(RAMDir, new StandardAnalyzer(), true);//刪除原有索引

    IndexWriter writer2=new IndexWriter(FSDirectory.getDirectory(path,true),

    new StandardAnalyzer(), true);

    writer.addDocument(doc1);

    writer2.addDocument(doc2);

    writer.close();

    writer2.addIndexes(new Directory[]{RAMDir});

    writer2.close();

    注意:在合并前一定要先關閉要加的索引器。

     

    本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/xiaoping8411/archive/2010/03/24/5413738.aspx

    posted on 2010-06-21 10:06 rogerfan 閱讀(596) 評論(0)  編輯  收藏 所屬分類: 【開源技術】
    主站蜘蛛池模板: A级毛片内射免费视频| 免费在线中文日本| 成人免费激情视频| 亚洲成人动漫在线| 亚洲午夜免费视频| 亚洲日本在线观看网址| 亚洲尤码不卡AV麻豆| 亚洲视频在线免费| 亚洲日产无码中文字幕| 四虎国产精品免费永久在线| 国产亚洲精品高清在线| 国产乱子伦精品免费视频| 亚洲日韩精品一区二区三区无码 | 亚洲人成色777777精品| 日韩毛片免费无码无毒视频观看| 亚洲伊人久久大香线蕉影院| 日本免费网址大全在线观看| 亚洲综合色丁香婷婷六月图片 | 无码国产精品一区二区免费模式| 久久精品国产亚洲香蕉| 日本免费xxxx| 久久国产精品亚洲综合| 五月婷婷在线免费观看| 亚洲色中文字幕在线播放| 四虎免费影院4hu永久免费| caoporn成人免费公开| 亚洲AV第一页国产精品| 我的小后妈韩剧在线看免费高清版| 亚洲色大成网站www尤物| 亚洲成人国产精品| 国产精品亚洲av色欲三区| 亚洲成网777777国产精品| 青青操在线免费观看| 亚洲一级大黄大色毛片| 无码不卡亚洲成?人片| 精品国产麻豆免费人成网站| 亚洲一级视频在线观看| 亚洲精品成人区在线观看| 毛片无码免费无码播放| 亚洲.国产.欧美一区二区三区| 日韩亚洲变态另类中文|