【概述】
在數學領域,權值指加權平均數中的每個數的頻數,也稱為權數或權重。在搜索引擎中,權值越高的內容在排序中越靠前。
實際應用中可以通過修改權值來重新調整索引在列表中的排序位置。
?
【示例】
1 /** 2 * 創建索引 3 */ 4 @Test 5 public void testIndex(){ 6 //存儲3篇文章的信息。包括:id、標題、作者、內容 7 int[] ids = {1,2,3}; 8 String[] titles = {"Hello","I love you","morning"}; 9 String[] authors = {"Hello Mike","HanMeimei","Tom"}; 10 String[] contents= {"Hello,My Name Is Mike; good","Tome,I Love You; good,good,good","Good Moring,I'm so sorry; good,,good,good,good,good"}; 11 12 IndexWriter writer = null; 13 14 try { 15 //1、創建Directory 16 Directory directory = FSDirectory.open(new File("E:\\lucene\\index2")); 17 18 //2、創建Writer 19 ...... 20 21 for(int i = 0;i<ids.length;i++){ 22 doc = new Document(); 23 24 //為文檔添加域(屬性) 25 String id = Integer.toString(ids[i]); 26 doc.add(new Field("id",id,Field.Store.YES,Field.Index.NOT_ANALYZED_NO_NORMS)); 27 doc.add(new Field("title",titles[i],Field.Store.YES,Field.Index.NOT_ANALYZED)); 28 doc.add(new Field("author",authors[i],Field.Store.YES,Field.Index.NOT_ANALYZED)); 29 doc.add(new Field("content", contents[i],Field.Store.NO,Field.Index.ANALYZED)); 30 31 //修改索引的權值 32 //默認權值為1.0 33 //將Id為1的數據權值調整到5.0 34 if(ids[i] == 1) 35 doc.setBoost(5.0f); 36 37 writer.addDocument(doc); 38 } 39 } catch (IOException e) { 40 e.printStackTrace(); 41 } 42 finally{ 43 if(writer != null) 44 try { 45 writer.close(); 46 } catch (CorruptIndexException e) { 47 // TODO Auto-generated catch block 48 e.printStackTrace(); 49 } catch (IOException e) { 50 // TODO Auto-generated catch block 51 e.printStackTrace(); 52 } 53 } 54 }
注意:讀取索引時讀取到的權值和索引中的權值是不同的。因為他們屬于不同的doc對象。