lucene包中的常用类

阅读更多
Directory:
     Directory这个类代表了 Lucene 的索引的存储的位置,这是一个抽象类,
     它目前有两个实现,第一个是 FSDirectory,它表示一个存储在文件系统中的索引的位置。
      第二个是 RAMDirectory,它表示一个存储在内存当中的索引的位置。

Document:
    Document文档类似数据库中的一条记录,可以由好几个字段(Field)组成,并且字段可以套用不同的类型
    Document 是用来描述文档的,这里的文档可以指一个 HTML 页面,一封电子邮件,或者是一个文本文件。
    一个 Document 对象由多个 Field 对象组成的。
     可以把一个 Document 对象想象成数据库中的一个记录,而每个 Field 对象就是记录的一个字段。

IndexWriter
     IndexWriter 是 Lucene 用来创建索引的一个核心的类,
      他的作用是把一个个的 Document 对象加到索引中来。
    例如:IndexWriter writer = new IndexWriter(directory, new StandardAnalyzer(), false);
             第一个参数是要索引建立在哪个目录里
            第二个参数是新建一个文本分析器,这里用的是标准的大家也可以自己写一个
            第三个参数如果是true,在建立索引之前先将目录清空。 
Analyzer
     在一个文档被索引之前,首先需要对文档内容进行分词处理,
        这部分工作就是由 Analyzer 来做的。Analyzer 类是一个抽象类,它有多个实现。
        针对不同的语言和应用需要选择适合的 Analyzer。
        Analyzer 把分词后的内容交给 IndexWriter 来建立索引

IndexSearcher
    IndexSearcher是用来在建立好的索引上进行搜索的。
         它只能以只读的方式打开一个索引,所以可以有多个IndexSearcher的实例在一个索引上进行操作。

Term是搜索的基本单位,一个Term对象有两个String类型的域组成。
          生成一个Term对象可以有如下一条语句来完成:
             Term term = new Term(“fieldName”,”queryWord”);
            其中第一个参数代表了要在文档的哪一个Field上进行查找,第二个参数代表了要查询的关键词。
           Term term = new Term(fieldNames[i], keyWord);
           FuzzyQuery用来搜索相似的term
           FuzzyQuery fQuery = new FuzzyQuery(term);
      

 Query这是一个抽象类,他有多个实现,
         比如TermQuery, BooleanQuery, PrefixQuery.
         这个类的目的是把用户输入的查询字符串封装成Lucene能够识别的Query。
       
        如果想输入关键字而不想关心是在哪个Field里的就可以用MultiFieldQueryParser了。    
        Query keyQuery = MultiFieldQueryParser.parse(keyWord, fieldNames,
                conditions, new StandardAnalyzer());

BooleanClause.Occur[]的三种类型:
      MUST : + and
         MUST_NOT : - not
      SHOULD : or
  
Hits是用来保存搜索的结果的

你可能感兴趣的:(lucene,工作,HTML)