自己动手写分布式搜索引擎
上QQ阅读APP看书,第一时间看更新

3.1.1 创建索引

先准备好文档数据,然后往索引库中加入文档。写入索引的过程如图3-2所示。

图3-2 写入索引

创建索引部分骨干伪代码。

        //打开索引库
        IndexWriter writer=new IndexWriter(dir);
        //写入一些文档
        writer.addDocument(doc);
        //关闭索引库
        writer.close();

一个Document代表索引库中的一条记录,也叫作文档。要搜索的信息封装成Document后通过IndexWriter写入索引库。

一个文档有多个列,例如,标题或者内容列。Lucene中的一个Document对象可以包含多个列对象,叫作Field。例如,一个网页可以包含“网址”“标题”“正文”“修改时间”等Field。创建这些列对象以后,可以通过Document的add()方法增加这些列。代码如下。

        Document doc = new Document();
        //创建网址列
        Field f = new Field("url", "http://www.lietu.com" ,
              Field.Store.YES, Field.Index.UN_TOKENIZED,
              Field.TermVector.NO);
        doc.add(f);