资源简介

基于java的搜索引擎的基本实现。技术点如下
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  Doclink.java

     文件      19482  2010-06-09 17:06  HtmlSearch.java

     文件        999  2010-05-16 05:37  MyList.java

----------- ---------  ---------- -----  ----

                32861                    8


评论

共有 条评论