`
deepfuture
  • 浏览: 4400308 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80073
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70039
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103345
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:285781
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15011
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67553
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32147
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45986
社区版块
存档分类
最新评论

lucene的until包当前lucene的版本号

 
阅读更多
首先介绍一下Java中枚举实现:

public enum Color{ 
    RED,BLUE,BLACK,YELLOW,GREEN 

显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类(java.lang.Enum<E>)。它们继承了这个Enum中的许多有用的方法
我们可以如下定义枚举常量(实质是一个类对象)
4. public static final enum hr.test.Color RED; 
5. public static final enum hr.test.Color BLUE; 
6. public static final enum hr.test.Color BLACK; 
7. public static final enum hr.test.Color YELLOW; 
8. public static final enum hr.test.Color GREEN;

即然枚举类是class,当然在枚举类型中有构造器,方法和数据域。但是,枚举类的构造器有很大的不同:
      (1) 构造器只是在构造枚举值的时候被调用。

Java代码 1.enum Color{ 
2.                RED(255,0,0),BLUE(0,0,255),BLACK(0,0,0),YELLOW(255,255,0),GREEN(0,255,0); 
3.                //构造枚举值,比如RED(255,0,0) 
4.                private Color(int rv,int gv,int bv){ 
5.                 this.redValue=rv; 
6.                 this.greenValue=gv; 
7.                 this.blueValue=bv; 
8.                } 
9. 
10.                public String toString(){  //覆盖了父类Enum的toString() 
11.                return super.toString()+"("+redValue+","+greenValue+","+blueValue+")"; 
12.                } 
13.    
14.                private int redValue;  //自定义数据域,private为了封装。 
15.                private int greenValue; 
16.                private int blueValue; 
17. } 
      (2) 构造器只能私有private,绝对不允许有public构造器。 这样可以保证外部代码无法新构造枚举类的实例。这也是完全符合情理的,因为我们知道枚举值是public static final的常量而已。 但枚举类的方法和数据域可以允许外部访问。

Java代码 1.public static void main(String args[]) 
2.{ 
3.        // Color colors=new Color(100,200,300);  //wrong 
4.           Color color=Color.RED; 
5.           System.out.println(color);  // 调用了toString()方法 
6.}    

3、所有枚举类都继承了Enum的方法,下面我们详细介绍这些方法。
       (1)  ordinal()方法: 返回枚举值在枚举类种的顺序。这个顺序根据枚举值声明的顺序而定。
                 Color.RED.ordinal();  //返回结果:0
                 Color.BLUE.ordinal();  //返回结果:1
       (2)  compareTo()方法: Enum实现了java.lang.Comparable接口,因此可以比较象与指定对象的顺序。Enum中的compareTo返回的是两个枚举值的顺序之差。当然,前提是两个枚举值必须属于同一个枚举类,否则会抛出ClassCastException()异常。(具体可见源代码)
                 Color.RED.compareTo(Color.BLUE);  //返回结果 -1
       (3)  values()方法: 静态方法,返回一个包含全部枚举值的数组。
                 Color[] colors=Color.values();
                 for(Color c:colors){
                        System.out.print(c+",");
                 }//返回结果:RED,BLUE,BLACK YELLOW,GREEN,
       (4)  toString()方法: 返回枚举常量的名称。
                 Color c=Color.RED;
                 System.out.println(c);//返回结果: RED
       (5)  valueOf()方法: 这个方法和toString方法是相对应的,返回带指定名称的指定枚举类型的枚举常量。
                 Color.valueOf("BLUE");   //返回结果: Color.BLUE
       (6)  equals()方法: 比较两个枚举类对象的引用

lucene的Version定义在org.apache.lucene.util内:
LUCENE_20表示lucene 2.0
LUCENE_35表示lucene 3.5

package org.apache.lucene.util;

/**
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/


/**
* Use by certain classes to match version compatibility
* across releases of Lucene.
*
* <p><b>WARNING</b>: When changing the version parameter
* that you supply to components in Lucene, do not simply
* change the version at search-time, but instead also adjust
* your indexing code to match, and re-index.
*/
// remove me when java 5 is no longer supported
// this is a workaround for a JDK bug that wrongly emits a warning.
@SuppressWarnings("dep-ann")
public enum Version {

  /** Match settings and bugs in Lucene's 2.0 release.
   * @deprecated (3.1) Use latest
   */
  @Deprecated
  LUCENE_20,

  /** Match settings and bugs in Lucene's 2.1 release.
   * @deprecated (3.1) Use latest
   */
  @Deprecated
  LUCENE_21,

  /** Match settings and bugs in Lucene's 2.2 release.
   * @deprecated (3.1) Use latest
   */
  @Deprecated
  LUCENE_22,

  /** Match settings and bugs in Lucene's 2.3 release.
   * @deprecated (3.1) Use latest
   */
  @Deprecated
  LUCENE_23,

  /** Match settings and bugs in Lucene's 2.4 release.
   * @deprecated (3.1) Use latest
   */
  @Deprecated
  LUCENE_24,

  /** Match settings and bugs in Lucene's 2.9 release.
   * @deprecated (3.1) Use latest
   */
  @Deprecated
  LUCENE_29,

  /** Match settings and bugs in Lucene's 3.0 release. */
  LUCENE_30,

  /** Match settings and bugs in Lucene's 3.1 release. */
  LUCENE_31,
 
  /** Match settings and bugs in Lucene's 3.2 release. */
  LUCENE_32,
 
  /** Match settings and bugs in Lucene's 3.3 release. */
  LUCENE_33,
 
  /** Match settings and bugs in Lucene's 3.4 release. */
  LUCENE_34,
 
  /**
   * Match settings and bugs in Lucene's 3.5 release.
   * <p>
   * Use this to get the latest &amp; greatest settings, bug
   * fixes, etc, for Lucene.
   */
  LUCENE_35,
 
  /* Add new constants for later versions **here** to respect order! */

  /**
   * <p><b>WARNING</b>: if you use this setting, and then
   * upgrade to a newer release of Lucene, sizable changes
   * may happen.  If backwards compatibility is important
   * then you should instead explicitly specify an actual
   * version.
   * <p>
   * If you use this constant then you  may need to
   * <b>re-index all of your documents</b> when upgrading
   * Lucene, as the way text is indexed may have changed.
   * Additionally, you may need to <b>re-test your entire
   * application</b> to ensure it behaves as expected, as
   * some defaults may have changed and may break functionality
   * in your application.
   * @deprecated Use an actual version instead.
   */
  @Deprecated
  LUCENE_CURRENT;

  public boolean onOrAfter(Version other) {
    return compareTo(other) >= 0;
  }
}

上述代码中,源代码标记@Deprecated是在JDK1.5中作为内置的annotation引入的,用于表明类(class)、方法(method)、字段(field)已经不再推荐使用,并且在以后的JDK版本中可能将其删除,编译器在默认情况下检测到有此标记的时候会提示警告信息。
在后述版本中
@Deprecated
  LUCENE_29
2.9及以前版本的可能会被删除
0
0
分享到:
评论

相关推荐

    lucene相关十几个包

    这个压缩包包含了十几个与Lucene相关的JAR文件,这些文件分别对应于不同的Lucene组件和版本,用于实现不同的功能。让我们逐一解析这些文件及其在Lucene中的作用。 1. **lukeall-4.7.1.jar**:Luke是Lucene的可视化...

    lucene所有的jar包

    本文将详细介绍“lucene所有的jar包”,特别是其中的“my的jar”和“ik的jar包”,以及它们在Lucene 4.9.0版本中的作用和使用方法。 一、Lucene简介 Lucene是Apache软件基金会的一个开放源代码项目,它提供了一个...

    lucene jar包

    Lucene是一个高性能、全文检索库,它是Java编写的一个开源项目,被广泛应用于各种版本的Java开发环境中,以实现高效、灵活的索引和搜索功能。Lucene的核心特性包括文本分析、索引构建、查询解析、排序以及结果评分等...

    lucene完整包,所有的包都有,非常全的

    在这个“lucene完整包”中,`lucene-1.9.1` 版本可能是早期的 Lucene 发行版。虽然版本较旧,但对于理解 Lucene 的基本原理和操作仍然是有价值的。随着 Lucene 不断发展,后续的版本引入了更多特性,如更先进的分词...

    lucene 所有jar包 包含IKAnalyzer分词器

    《Lucene分词技术与IKAnalyzer详解》 在信息技术领域,搜索引擎是不可或缺的一部分,而Lucene作为Apache软件基金会的一个开放源代码项目,是Java语言开发的全文检索引擎库,为构建高效、可扩展的信息检索应用提供了...

    Lucene3.5源码jar包

    本压缩包包含的是Lucene 3.5.0版本的全部源码,对于想要深入理解Lucene工作原理、进行二次开发或者进行搜索引擎相关研究的开发者来说,是一份非常宝贵的学习资源。 Lucene 3.5.0是Lucene的一个重要版本,它在3.x...

    lucene jar大全 包涵多个版本的jar包2.0-4.1等

    本资源提供了从2.0到4.1等多个版本的Lucene JAR包,涵盖了一个时期的版本发展,这对于开发者进行版本兼容性测试、学习历史版本特性和功能,或者针对不同项目需求选择合适版本具有重要意义。 1. **Lucene 2.0**: ...

    lucene-4.7.0全套jar包

    【Lucene 4.7.0 全套JAR包详解】 Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它提供了一个高级、灵活的文本搜索API,允许开发者轻松地在应用程序中实现复杂的搜索功能。这次提供的“lucene-...

    lucene in action英文版 lucene 3.30包

    "Lucene的- 3.0.3.zip.ZIP"可能是Lucene 3.0.3版本的源码或二进制包,可供开发者下载研究和使用。 总之,Lucene是一个强大的搜索工具,通过学习《Lucene in Action》并实践使用Lucene 3.30,开发者能够构建高效、...

    lucene 最新版本所有jar包

    在本压缩包中,包含了Lucene的最新版本——4.10.2的所有相关jar包,总计59个,这些jar包构成了Lucene的核心组件以及各种扩展模块。 首先,我们来看看核心组件`lucene-core-4.10.2.jar`。这个包是Lucene的基础,包含...

    lucene的jar包,欢迎下载

    9. **社区与版本**:Lucene历经多个版本的迭代,目前最新的稳定版已经发展到8.x,拥有强大的社区支持,不断有新的特性和优化加入。 10. **应用场景**:Lucene广泛应用于各种需要全文搜索的场景,如网站搜索、日志...

    lucene_jar包

    **Lucene jar包详解** Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。这个"lucene_jar包"包含了Lucene的核心组件,是开发者构建搜索功能的基础。在Java开发环境中,jar(Java Archive)包是将...

    lucene 全包 包括源码

    在这个压缩包中,你将获得Lucene 2.3.2版本的全部源码,这将有助于深入理解其内部工作原理以及进行自定义开发。 源码分析: Lucene 的源码分为几个主要部分,包括分析(Analyzer)、索引(Index)、查询(Query)、...

    Lucene开发包

    **Lucene 开发包详解** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发并维护。这个开发包包含了两个版本:lucene-1.4.3 和 lucene-1.4.1,分别代表了 Lucene 的不同迭代阶段,它们为开发者提供了...

    lucene7.7.2稳定版本

    7.7.2 版本是 Lucene 的一个重要稳定版本,它在前一版本的基础上进行了多项改进和优化,为开发者提供了更强大、更稳定的搜索解决方案。 1. **全文检索核心**: Lucene 的核心在于其强大的全文检索能力。它能够对...

    工具包Lucene2.4.1

    在此次提供的"工具包Lucene2.4.1"中,我们聚焦于这个相对较新的版本(相对于发布时)的特性、功能和使用方法。 **一、Lucene简介** Lucene的核心功能是实现文本的索引和搜索,它提供了一个高级的、灵活的、可扩展的...

    lucene-highlighter-3.5.0.jar lucene高亮包

    lucene-highlighter-3.5.0.jar lucene高亮包

    apache Lucene4.7最全最新的jar包

    Apache Lucene 4.7是该库的一个版本,它提供了丰富的功能和改进,使得开发者能够轻松地在他们的应用中实现复杂的搜索功能。 首先,Lucene的核心功能包括分词、索引和搜索。分词是将输入的文本拆分成可搜索的单词或...

Global site tag (gtag.js) - Google Analytics