資源簡介
基于java的搜索引擎的基本實現。技術點如下
1.分詞算法
2.倒排文檔
3.檢索技術
1.分詞算法
2.倒排文檔
3.檢索技術
代碼片段和文件信息
package?HtmlSearch;
import?java.io.IOException;
import?java.util.Vector;
class?BiTNode
{
????CharString?cs;
????int?DF;
????int?Occur;
????BiTNode?left;
????BiTNode?right;
}
class?VecNode
{
????BiTNode?bitnode;
????int?level=0;
}
public?class?BTree
{
????BiTNode?root;
????private?BiTNode?pointer;
????public?BTree()
????{
????????root=null;
????????pointer=null;
????}
????public?boolean?searchBST(BiTNode?tint?DFint?OccurBiTNode?f)
????{
????????if(t==null)
????????{
????????????pointer=f;
????????????return?false;
????????}
????????else
????????{
????????int?res=compare(DFOccurt);
????????if(res==0)
????????{
????????????pointer=t;
????????????return?true;
????????}
????????else?if(res==-1)
????????{
????????????return?searchBST(t.leftDFOccurt);
????????}
????????else
????????{
????????????return?searchBST(t.rightDFOccurt);
????????}
????????}
????}
????public?void?insertBST(BiTNode?tint?DFint?OccurCharString?cs)
????{
????????if(searchBST(tDFOccurnull)==false)
????????{
????????????BiTNode?s=new?BiTNode();
????????????s.DF=DF;
????????????s.Occur=Occur;
????????????s.cs=cs;
????????????s.left=null;
????????????s.right=null;
????????????if(pointer==null)?root=s;
????????????else?if(compare(DFOccurpointer)==-1)?pointer.left=s;
????????????else?pointer.right=s;
????????}
????}
????private?int?compare(int?DFint?OccurBiTNode?t)???//0:相等??-1:小于???1:大于
????{
????????if(DF ????????else?if(DF>t.DF)?return?1;
????????else
????????{
????????????if(Occur ????????????else?if(Occur>t.Occur)?return?1;
????????????else?return?0;
????????}
????}
????public?void?print()?throws?IOException
????{
????????Vector?vv=new?Vector();
????????VecNode?vn=new?VecNode();
????????vn.bitnode=root;
????????vn.level=0;
????????vv.add(vn);
????????while(vv.get(0).level<5)
????????{
????????HtmlSearch.bw.write(“{“);
????????HtmlSearch.bw.write(vv.get(0).bitnode.cs.ch);
????????HtmlSearch.bw.write(“?“+vv.get(0).bitnode.DF+“?“+vv.get(0).bitnode.Occur+“?“+vv.get(0).level+“}“+“??“);
????????if(vv.lastElement()==vv.get(0))?HtmlSearch.bw.newLine();
????????else
????????{
????????????if(vv.get(0).level!=vv.get(1).level)?HtmlSearch.bw.newLine();
????????}
????????if(vv.get(0).bitnode.left!=null)
????????{
????????????VecNode?t=new?VecNode();
????????????t.bitnode=vv.get(0).bitnode.left;
????????????t.level=vv.get(0).level+1;
????????????vv.add(t);
????????}
????????if(vv.get(0).bitnode.right!=null)
????????{
????????????VecNode?t=new?VecNode();
????????????t.bitnode=vv.get(0).bitnode.right;
????????????t.level=vv.get(0).level+1;
????????????vv.add(t);
????????}
????????vv.remove(0);
????????}
????????HtmlSearch.bw.flush();
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????141??2010-05-16?05:37??Node.java
?????文件???????2728??2010-07-11?19:55??BTree.java
?????文件???????2380??2010-06-08?23:54??CharString.java
?????文件????????186??2010-05-16?05:37??DicNode.java
?????文件???????4336??2010-06-08?15:07??Dictionary.java
?????文件???????2609??2010-06-08?06:09??Docli
?????文件??????19482??2010-06-09?17:06??HtmlSearch.java
?????文件????????999??2010-05-16?05:37??MyList.java
-----------?---------??----------?-----??----
????????????????32861????????????????????8
評論
共有 條評論