`
莫生气
  • 浏览: 866169 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

lucene包中的常用类

    博客分类:
  • Java
阅读更多
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 2.0.0 资源压缩包

    费了好大的劲终于搜集齐了lucene压缩包,该包中包含了lucene开发中用到的各种jar包,如lucene-core-2.0.0.jar,lecene-demos-2.0.0.jar,还有常用的分词包(lucene-analyzers-2.0.0.jar)和技术文档

    lucene-analysis.jar

    StandardAnalyzer是最常用的分析器,它遵循Unicode文本分析标准,能处理多种语言的文本。SimpleAnalyzer则相对简单,只进行简单的分词,而StopAnalyzer则会过滤掉常见的停用词,如“的”、“是”等。 除了预定义的...

    lucene7.1.0所需jar包

    3. **内存和文件系统操作**: `lucene-memory.jar`包含了内存索引的支持,而`lucene-misc.jar`提供了杂项工具,可能包括一些不常用但有用的特性。`lucene-store.jar`处理底层的存储机制,包括文件系统和内存存储。 4...

    lucene个人总结

    - **作用**:此包中的类主要用于对需要建立索引的文本进行分词、过滤等预处理工作。它是Lucene全文检索的基础。 - **核心类**: - **Analyzer**:抽象类,管理对文本内容的切分词规则。Analyzer类用于将文档分割成...

    web开发常用jar

    Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache ...

    java开发常用jar包

    Apache Commons包中的一个,包含了一些Bean工具类类。必须使用的jar包。 commons-collections.jar Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大 commons-lang.jar Apache ...

    java中用的各种类

    `javax.mail.internet`包中的类如`MimeMessage`和`InternetAddress`是常用的工具。 9. **SQLServer驱动包**: 要连接到SQL Server数据库,需要Microsoft提供的JDBC驱动,通常名为`mssql-jdbc.jar`。它实现了JDBC...

    AnalyzeWordsInFile:这包含从文本文件中查找最不常用的单词

    在Java中,我们可以使用`java.io`包中的`BufferedReader`类来读取文件内容。通过创建一个`BufferedReader`实例,然后调用`readLine()`方法逐行读取文件,直到文件结束。这样可以避免一次性加载整个文件导致内存溢出...

    java复制文件和java移动文件的示例分享

    JarCollectionUtil类使用了***mons.io包中的FileUtils类的copyFile方法来实现文件的复制。FileUtils类提供了非常方便的静态方法来处理文件和目录,其copyFile方法可以将源文件复制到目标位置,并且在复制过程中会...

    sorl安装文档-sorl安装文档

    在解压的Solr包中找到`solr-4.10.3\example\solr`目录并将其复制到指定位置。 - 修改文件夹名称为`solrhome`(非必须)。 ##### 3. 配置SolrCore - **配置文件**: 主要是对`SolrCore`目录下的`conf/solrconfig.xml`...

    springboot_es_demo.7z

    它集成了大量的常用库,如数据访问、安全、Web等,使得开发者可以“零配置”或少量配置即可快速启动项目。同时,SpringBoot还提供了内置的Tomcat服务器,使得应用可以直接运行在jar包中,提高了部署的便捷性。 二、...

    openSourcLibrary-2015:jdk,guava,Apache..等开源库使用与研究

    2. **函数式接口**:如`java.util.function`包中的接口,支持函数式编程风格。 3. **Stream API**:用于处理集合数据的新API,支持串行和并行数据处理。 4. **日期和时间API**:`java.time`包替代了过时的`java.util...

Global site tag (gtag.js) - Google Analytics