You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@lucene.apache.org by bu...@apache.org on 2008/05/20 09:40:56 UTC
svn commit: r658136 [1/4] - in /lucene/java/trunk/src:
java/org/apache/lucene/ java/org/apache/lucene/analysis/
java/org/apache/lucene/document/ java/org/apache/lucene/index/
java/org/apache/lucene/search/ java/org/apache/lucene/util/
test/org/apache/l...
Author: buschmi
Date: Tue May 20 00:40:54 2008
New Revision: 658136
URL: http://svn.apache.org/viewvc?rev=658136&view=rev
Log:
Set eol-style to native for all files in src/java and src/test that did not
have this property set before.
Modified:
lucene/java/trunk/src/java/org/apache/lucene/LucenePackage.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/analysis/CachingTokenFilter.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/analysis/ISOLatin1AccentFilter.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/analysis/KeywordAnalyzer.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/analysis/KeywordTokenizer.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/AbstractField.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelector.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelectorResult.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/Fieldable.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/LoadFirstFieldSelector.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/MapFieldSelector.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/document/SetBasedFieldSelector.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListReader.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListWriter.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/FieldReaderException.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileDeleter.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileNameFilter.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/IndexFileNames.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/IndexModifier.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/MultiLevelSkipListReader.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/MultiLevelSkipListWriter.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/index/Payload.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/package.html (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/ComplexExplanation.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/DisjunctionMaxQuery.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/DisjunctionMaxScorer.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/FilterManager.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/Hit.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/HitIterator.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/MatchAllDocsQuery.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/SimilarityDelegator.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/TopDocCollector.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/search/TopFieldDocCollector.java (props changed)
lucene/java/trunk/src/java/org/apache/lucene/util/SmallFloat.java (contents, props changed)
lucene/java/trunk/src/java/org/apache/lucene/util/ToStringUtils.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/TestHitIterator.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/analysis/TestISOLatin1AccentFilter.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/analysis/TestKeywordAnalyzer.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/analysis/TestLengthFilter.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/analysis/TestStopFilter.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestBackwardsCompatibility.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexFileDeleter.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexModifier.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterDelete.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterLockRelease.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestIndexWriterMerging.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestMultiLevelSkipList.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestParallelReader.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestPayloads.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestStressIndexing.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestTerm.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestTermdocPerf.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestTransactions.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/TestWordlistLoader.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/index/store/TestRAMDirectory.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestBooleanMinShouldMatch.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestBooleanOr.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestBooleanQuery.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestComplexExplanations.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestComplexExplanationsOfNonMatches.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestConstantScoreRangeQuery.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestCustomSearcherSort.java (contents, props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestDateSort.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestDisjunctionMaxQuery.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestMatchAllDocsQuery.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestMultiSearcherRanking.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestSimpleExplanations.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestSimpleExplanationsOfNonMatches.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/TestTermScorer.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestSpanExplanations.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestSpanExplanationsOfNonMatches.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestSpansAdvanced.java (props changed)
lucene/java/trunk/src/test/org/apache/lucene/search/spans/TestSpansAdvanced2.java (props changed)
Propchange: lucene/java/trunk/src/java/org/apache/lucene/LucenePackage.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/analysis/CachingTokenFilter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/analysis/CachingTokenFilter.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/analysis/CachingTokenFilter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/analysis/CachingTokenFilter.java Tue May 20 00:40:54 2008
@@ -1,72 +1,72 @@
-package org.apache.lucene.analysis;
-
-/**
- * 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.
- */
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * This class can be used if the Tokens of a TokenStream
- * are intended to be consumed more than once. It caches
- * all Tokens locally in a List.
- *
- * CachingTokenFilter implements the optional method
- * {@link TokenStream#reset()}, which repositions the
- * stream to the first Token.
- *
- */
-public class CachingTokenFilter extends TokenFilter {
- private List cache;
- private Iterator iterator;
-
- public CachingTokenFilter(TokenStream input) {
- super(input);
- }
-
- public Token next() throws IOException {
- if (cache == null) {
- // fill cache lazily
- cache = new LinkedList();
- fillCache();
- iterator = cache.iterator();
- }
-
- if (!iterator.hasNext()) {
- // the cache is exhausted, return null
- return null;
- }
-
- return (Token) iterator.next();
- }
-
- public void reset() throws IOException {
- if(cache != null) {
- iterator = cache.iterator();
- }
- }
-
- private void fillCache() throws IOException {
- Token token;
- while ( (token = input.next()) != null) {
- cache.add(token);
- }
- }
-
-}
+package org.apache.lucene.analysis;
+
+/**
+ * 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.
+ */
+
+import java.io.IOException;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * This class can be used if the Tokens of a TokenStream
+ * are intended to be consumed more than once. It caches
+ * all Tokens locally in a List.
+ *
+ * CachingTokenFilter implements the optional method
+ * {@link TokenStream#reset()}, which repositions the
+ * stream to the first Token.
+ *
+ */
+public class CachingTokenFilter extends TokenFilter {
+ private List cache;
+ private Iterator iterator;
+
+ public CachingTokenFilter(TokenStream input) {
+ super(input);
+ }
+
+ public Token next() throws IOException {
+ if (cache == null) {
+ // fill cache lazily
+ cache = new LinkedList();
+ fillCache();
+ iterator = cache.iterator();
+ }
+
+ if (!iterator.hasNext()) {
+ // the cache is exhausted, return null
+ return null;
+ }
+
+ return (Token) iterator.next();
+ }
+
+ public void reset() throws IOException {
+ if(cache != null) {
+ iterator = cache.iterator();
+ }
+ }
+
+ private void fillCache() throws IOException {
+ Token token;
+ while ( (token = input.next()) != null) {
+ cache.add(token);
+ }
+ }
+
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/analysis/CachingTokenFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lucene/java/trunk/src/java/org/apache/lucene/analysis/ISOLatin1AccentFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lucene/java/trunk/src/java/org/apache/lucene/analysis/KeywordAnalyzer.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lucene/java/trunk/src/java/org/apache/lucene/analysis/KeywordTokenizer.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/document/AbstractField.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/document/AbstractField.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/document/AbstractField.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/document/AbstractField.java Tue May 20 00:40:54 2008
@@ -1,274 +1,274 @@
-package org.apache.lucene.document;
-/**
- * Copyright 2006 The Apache Software Foundation
- *
- * Licensed 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.
- */
-
-
-/**
- *
- *
- **/
-public abstract class AbstractField implements Fieldable {
-
- protected String name = "body";
- protected boolean storeTermVector = false;
- protected boolean storeOffsetWithTermVector = false;
- protected boolean storePositionWithTermVector = false;
- protected boolean omitNorms = false;
- protected boolean isStored = false;
- protected boolean isIndexed = true;
- protected boolean isTokenized = true;
- protected boolean isBinary = false;
- protected boolean isCompressed = false;
- protected boolean lazy = false;
- protected float boost = 1.0f;
- // the one and only data object for all different kind of field values
- protected Object fieldsData = null;
-
- protected AbstractField()
- {
-
- }
-
- protected AbstractField(String name, Field.Store store, Field.Index index, Field.TermVector termVector) {
- if (name == null)
- throw new NullPointerException("name cannot be null");
- this.name = name.intern(); // field names are interned
-
- if (store == Field.Store.YES){
- this.isStored = true;
- this.isCompressed = false;
- }
- else if (store == Field.Store.COMPRESS) {
- this.isStored = true;
- this.isCompressed = true;
- }
- else if (store == Field.Store.NO){
- this.isStored = false;
- this.isCompressed = false;
- }
- else
- throw new IllegalArgumentException("unknown store parameter " + store);
-
- if (index == Field.Index.NO) {
- this.isIndexed = false;
- this.isTokenized = false;
- } else if (index == Field.Index.TOKENIZED) {
- this.isIndexed = true;
- this.isTokenized = true;
- } else if (index == Field.Index.UN_TOKENIZED) {
- this.isIndexed = true;
- this.isTokenized = false;
- } else if (index == Field.Index.NO_NORMS) {
- this.isIndexed = true;
- this.isTokenized = false;
- this.omitNorms = true;
- } else {
- throw new IllegalArgumentException("unknown index parameter " + index);
- }
-
- this.isBinary = false;
-
- setStoreTermVector(termVector);
- }
-
- /** Sets the boost factor hits on this field. This value will be
- * multiplied into the score of all hits on this this field of this
- * document.
- *
- * <p>The boost is multiplied by {@link org.apache.lucene.document.Document#getBoost()} of the document
- * containing this field. If a document has multiple fields with the same
- * name, all such values are multiplied together. This product is then
- * multipled by the value {@link org.apache.lucene.search.Similarity#lengthNorm(String,int)}, and
- * rounded by {@link org.apache.lucene.search.Similarity#encodeNorm(float)} before it is stored in the
- * index. One should attempt to ensure that this product does not overflow
- * the range of that encoding.
- *
- * @see org.apache.lucene.document.Document#setBoost(float)
- * @see org.apache.lucene.search.Similarity#lengthNorm(String, int)
- * @see org.apache.lucene.search.Similarity#encodeNorm(float)
- */
- public void setBoost(float boost) {
- this.boost = boost;
- }
-
- /** Returns the boost factor for hits for this field.
- *
- * <p>The default value is 1.0.
- *
- * <p>Note: this value is not stored directly with the document in the index.
- * Documents returned from {@link org.apache.lucene.index.IndexReader#document(int)} and
- * {@link org.apache.lucene.search.Hits#doc(int)} may thus not have the same value present as when
- * this field was indexed.
- *
- * @see #setBoost(float)
- */
- public float getBoost() {
- return boost;
- }
-
- /** Returns the name of the field as an interned string.
- * For example "date", "title", "body", ...
- */
- public String name() { return name; }
-
- protected void setStoreTermVector(Field.TermVector termVector) {
- if (termVector == Field.TermVector.NO) {
- this.storeTermVector = false;
- this.storePositionWithTermVector = false;
- this.storeOffsetWithTermVector = false;
- }
- else if (termVector == Field.TermVector.YES) {
- this.storeTermVector = true;
- this.storePositionWithTermVector = false;
- this.storeOffsetWithTermVector = false;
- }
- else if (termVector == Field.TermVector.WITH_POSITIONS) {
- this.storeTermVector = true;
- this.storePositionWithTermVector = true;
- this.storeOffsetWithTermVector = false;
- }
- else if (termVector == Field.TermVector.WITH_OFFSETS) {
- this.storeTermVector = true;
- this.storePositionWithTermVector = false;
- this.storeOffsetWithTermVector = true;
- }
- else if (termVector == Field.TermVector.WITH_POSITIONS_OFFSETS) {
- this.storeTermVector = true;
- this.storePositionWithTermVector = true;
- this.storeOffsetWithTermVector = true;
- }
- else {
- throw new IllegalArgumentException("unknown termVector parameter " + termVector);
- }
- }
-
- /** True iff the value of the field is to be stored in the index for return
- with search hits. It is an error for this to be true if a field is
- Reader-valued. */
- public final boolean isStored() { return isStored; }
-
- /** True iff the value of the field is to be indexed, so that it may be
- searched on. */
- public final boolean isIndexed() { return isIndexed; }
-
- /** True iff the value of the field should be tokenized as text prior to
- indexing. Un-tokenized fields are indexed as a single word and may not be
- Reader-valued. */
- public final boolean isTokenized() { return isTokenized; }
-
- /** True if the value of the field is stored and compressed within the index */
- public final boolean isCompressed() { return isCompressed; }
-
- /** True iff the term or terms used to index this field are stored as a term
- * vector, available from {@link org.apache.lucene.index.IndexReader#getTermFreqVector(int,String)}.
- * These methods do not provide access to the original content of the field,
- * only to terms used to index it. If the original content must be
- * preserved, use the <code>stored</code> attribute instead.
- *
- * @see org.apache.lucene.index.IndexReader#getTermFreqVector(int, String)
- */
- public final boolean isTermVectorStored() { return storeTermVector; }
-
- /**
- * True iff terms are stored as term vector together with their offsets
- * (start and end positon in source text).
- */
- public boolean isStoreOffsetWithTermVector(){
- return storeOffsetWithTermVector;
- }
-
- /**
- * True iff terms are stored as term vector together with their token positions.
- */
- public boolean isStorePositionWithTermVector(){
- return storePositionWithTermVector;
- }
-
- /** True iff the value of the filed is stored as binary */
- public final boolean isBinary() { return isBinary; }
-
- /** True if norms are omitted for this indexed field */
- public boolean getOmitNorms() { return omitNorms; }
-
- /** Expert:
- *
- * If set, omit normalization factors associated with this indexed field.
- * This effectively disables indexing boosts and length normalization for this field.
- */
- public void setOmitNorms(boolean omitNorms) { this.omitNorms=omitNorms; }
-
- public boolean isLazy() {
- return lazy;
- }
-
- /** Prints a Field for human consumption. */
- public final String toString() {
- StringBuffer result = new StringBuffer();
- if (isStored) {
- result.append("stored");
- if (isCompressed)
- result.append("/compressed");
- else
- result.append("/uncompressed");
- }
- if (isIndexed) {
- if (result.length() > 0)
- result.append(",");
- result.append("indexed");
- }
- if (isTokenized) {
- if (result.length() > 0)
- result.append(",");
- result.append("tokenized");
- }
- if (storeTermVector) {
- if (result.length() > 0)
- result.append(",");
- result.append("termVector");
- }
- if (storeOffsetWithTermVector) {
- if (result.length() > 0)
- result.append(",");
- result.append("termVectorOffsets");
- }
- if (storePositionWithTermVector) {
- if (result.length() > 0)
- result.append(",");
- result.append("termVectorPosition");
- }
- if (isBinary) {
- if (result.length() > 0)
- result.append(",");
- result.append("binary");
- }
- if (omitNorms) {
- result.append(",omitNorms");
- }
- if (lazy){
- result.append(",lazy");
- }
- result.append('<');
- result.append(name);
- result.append(':');
-
- if (fieldsData != null && lazy == false) {
- result.append(fieldsData);
- }
-
- result.append('>');
- return result.toString();
- }
-}
+package org.apache.lucene.document;
+/**
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+
+/**
+ *
+ *
+ **/
+public abstract class AbstractField implements Fieldable {
+
+ protected String name = "body";
+ protected boolean storeTermVector = false;
+ protected boolean storeOffsetWithTermVector = false;
+ protected boolean storePositionWithTermVector = false;
+ protected boolean omitNorms = false;
+ protected boolean isStored = false;
+ protected boolean isIndexed = true;
+ protected boolean isTokenized = true;
+ protected boolean isBinary = false;
+ protected boolean isCompressed = false;
+ protected boolean lazy = false;
+ protected float boost = 1.0f;
+ // the one and only data object for all different kind of field values
+ protected Object fieldsData = null;
+
+ protected AbstractField()
+ {
+
+ }
+
+ protected AbstractField(String name, Field.Store store, Field.Index index, Field.TermVector termVector) {
+ if (name == null)
+ throw new NullPointerException("name cannot be null");
+ this.name = name.intern(); // field names are interned
+
+ if (store == Field.Store.YES){
+ this.isStored = true;
+ this.isCompressed = false;
+ }
+ else if (store == Field.Store.COMPRESS) {
+ this.isStored = true;
+ this.isCompressed = true;
+ }
+ else if (store == Field.Store.NO){
+ this.isStored = false;
+ this.isCompressed = false;
+ }
+ else
+ throw new IllegalArgumentException("unknown store parameter " + store);
+
+ if (index == Field.Index.NO) {
+ this.isIndexed = false;
+ this.isTokenized = false;
+ } else if (index == Field.Index.TOKENIZED) {
+ this.isIndexed = true;
+ this.isTokenized = true;
+ } else if (index == Field.Index.UN_TOKENIZED) {
+ this.isIndexed = true;
+ this.isTokenized = false;
+ } else if (index == Field.Index.NO_NORMS) {
+ this.isIndexed = true;
+ this.isTokenized = false;
+ this.omitNorms = true;
+ } else {
+ throw new IllegalArgumentException("unknown index parameter " + index);
+ }
+
+ this.isBinary = false;
+
+ setStoreTermVector(termVector);
+ }
+
+ /** Sets the boost factor hits on this field. This value will be
+ * multiplied into the score of all hits on this this field of this
+ * document.
+ *
+ * <p>The boost is multiplied by {@link org.apache.lucene.document.Document#getBoost()} of the document
+ * containing this field. If a document has multiple fields with the same
+ * name, all such values are multiplied together. This product is then
+ * multipled by the value {@link org.apache.lucene.search.Similarity#lengthNorm(String,int)}, and
+ * rounded by {@link org.apache.lucene.search.Similarity#encodeNorm(float)} before it is stored in the
+ * index. One should attempt to ensure that this product does not overflow
+ * the range of that encoding.
+ *
+ * @see org.apache.lucene.document.Document#setBoost(float)
+ * @see org.apache.lucene.search.Similarity#lengthNorm(String, int)
+ * @see org.apache.lucene.search.Similarity#encodeNorm(float)
+ */
+ public void setBoost(float boost) {
+ this.boost = boost;
+ }
+
+ /** Returns the boost factor for hits for this field.
+ *
+ * <p>The default value is 1.0.
+ *
+ * <p>Note: this value is not stored directly with the document in the index.
+ * Documents returned from {@link org.apache.lucene.index.IndexReader#document(int)} and
+ * {@link org.apache.lucene.search.Hits#doc(int)} may thus not have the same value present as when
+ * this field was indexed.
+ *
+ * @see #setBoost(float)
+ */
+ public float getBoost() {
+ return boost;
+ }
+
+ /** Returns the name of the field as an interned string.
+ * For example "date", "title", "body", ...
+ */
+ public String name() { return name; }
+
+ protected void setStoreTermVector(Field.TermVector termVector) {
+ if (termVector == Field.TermVector.NO) {
+ this.storeTermVector = false;
+ this.storePositionWithTermVector = false;
+ this.storeOffsetWithTermVector = false;
+ }
+ else if (termVector == Field.TermVector.YES) {
+ this.storeTermVector = true;
+ this.storePositionWithTermVector = false;
+ this.storeOffsetWithTermVector = false;
+ }
+ else if (termVector == Field.TermVector.WITH_POSITIONS) {
+ this.storeTermVector = true;
+ this.storePositionWithTermVector = true;
+ this.storeOffsetWithTermVector = false;
+ }
+ else if (termVector == Field.TermVector.WITH_OFFSETS) {
+ this.storeTermVector = true;
+ this.storePositionWithTermVector = false;
+ this.storeOffsetWithTermVector = true;
+ }
+ else if (termVector == Field.TermVector.WITH_POSITIONS_OFFSETS) {
+ this.storeTermVector = true;
+ this.storePositionWithTermVector = true;
+ this.storeOffsetWithTermVector = true;
+ }
+ else {
+ throw new IllegalArgumentException("unknown termVector parameter " + termVector);
+ }
+ }
+
+ /** True iff the value of the field is to be stored in the index for return
+ with search hits. It is an error for this to be true if a field is
+ Reader-valued. */
+ public final boolean isStored() { return isStored; }
+
+ /** True iff the value of the field is to be indexed, so that it may be
+ searched on. */
+ public final boolean isIndexed() { return isIndexed; }
+
+ /** True iff the value of the field should be tokenized as text prior to
+ indexing. Un-tokenized fields are indexed as a single word and may not be
+ Reader-valued. */
+ public final boolean isTokenized() { return isTokenized; }
+
+ /** True if the value of the field is stored and compressed within the index */
+ public final boolean isCompressed() { return isCompressed; }
+
+ /** True iff the term or terms used to index this field are stored as a term
+ * vector, available from {@link org.apache.lucene.index.IndexReader#getTermFreqVector(int,String)}.
+ * These methods do not provide access to the original content of the field,
+ * only to terms used to index it. If the original content must be
+ * preserved, use the <code>stored</code> attribute instead.
+ *
+ * @see org.apache.lucene.index.IndexReader#getTermFreqVector(int, String)
+ */
+ public final boolean isTermVectorStored() { return storeTermVector; }
+
+ /**
+ * True iff terms are stored as term vector together with their offsets
+ * (start and end positon in source text).
+ */
+ public boolean isStoreOffsetWithTermVector(){
+ return storeOffsetWithTermVector;
+ }
+
+ /**
+ * True iff terms are stored as term vector together with their token positions.
+ */
+ public boolean isStorePositionWithTermVector(){
+ return storePositionWithTermVector;
+ }
+
+ /** True iff the value of the filed is stored as binary */
+ public final boolean isBinary() { return isBinary; }
+
+ /** True if norms are omitted for this indexed field */
+ public boolean getOmitNorms() { return omitNorms; }
+
+ /** Expert:
+ *
+ * If set, omit normalization factors associated with this indexed field.
+ * This effectively disables indexing boosts and length normalization for this field.
+ */
+ public void setOmitNorms(boolean omitNorms) { this.omitNorms=omitNorms; }
+
+ public boolean isLazy() {
+ return lazy;
+ }
+
+ /** Prints a Field for human consumption. */
+ public final String toString() {
+ StringBuffer result = new StringBuffer();
+ if (isStored) {
+ result.append("stored");
+ if (isCompressed)
+ result.append("/compressed");
+ else
+ result.append("/uncompressed");
+ }
+ if (isIndexed) {
+ if (result.length() > 0)
+ result.append(",");
+ result.append("indexed");
+ }
+ if (isTokenized) {
+ if (result.length() > 0)
+ result.append(",");
+ result.append("tokenized");
+ }
+ if (storeTermVector) {
+ if (result.length() > 0)
+ result.append(",");
+ result.append("termVector");
+ }
+ if (storeOffsetWithTermVector) {
+ if (result.length() > 0)
+ result.append(",");
+ result.append("termVectorOffsets");
+ }
+ if (storePositionWithTermVector) {
+ if (result.length() > 0)
+ result.append(",");
+ result.append("termVectorPosition");
+ }
+ if (isBinary) {
+ if (result.length() > 0)
+ result.append(",");
+ result.append("binary");
+ }
+ if (omitNorms) {
+ result.append(",omitNorms");
+ }
+ if (lazy){
+ result.append(",lazy");
+ }
+ result.append('<');
+ result.append(name);
+ result.append(':');
+
+ if (fieldsData != null && lazy == false) {
+ result.append(fieldsData);
+ }
+
+ result.append('>');
+ return result.toString();
+ }
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/AbstractField.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelector.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelector.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelector.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelector.java Tue May 20 00:40:54 2008
@@ -1,34 +1,34 @@
-package org.apache.lucene.document;
-
-import java.io.Serializable;
-/**
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
- */
-
-/**
- * Similar to a {@link java.io.FileFilter}, the FieldSelector allows one to make decisions about
- * what Fields get loaded on a {@link Document} by {@link org.apache.lucene.index.IndexReader#document(int,org.apache.lucene.document.FieldSelector)}
- *
- **/
-public interface FieldSelector extends Serializable {
-
- /**
- *
- * @param fieldName the field to accept or reject
- * @return an instance of {@link FieldSelectorResult}
- * if the {@link Field} named <code>fieldName</code> should be loaded.
- */
- FieldSelectorResult accept(String fieldName);
-}
+package org.apache.lucene.document;
+
+import java.io.Serializable;
+/**
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Similar to a {@link java.io.FileFilter}, the FieldSelector allows one to make decisions about
+ * what Fields get loaded on a {@link Document} by {@link org.apache.lucene.index.IndexReader#document(int,org.apache.lucene.document.FieldSelector)}
+ *
+ **/
+public interface FieldSelector extends Serializable {
+
+ /**
+ *
+ * @param fieldName the field to accept or reject
+ * @return an instance of {@link FieldSelectorResult}
+ * if the {@link Field} named <code>fieldName</code> should be loaded.
+ */
+ FieldSelectorResult accept(String fieldName);
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelector.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelectorResult.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelectorResult.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelectorResult.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelectorResult.java Tue May 20 00:40:54 2008
@@ -1,96 +1,96 @@
-package org.apache.lucene.document;
-
-import java.io.Serializable;
-/**
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
- */
-
-/**
- * Provides information about what should be done with this Field
- *
- **/
-//Replace with an enumerated type in 1.5
-public final class FieldSelectorResult implements Serializable {
-
- /**
- * Load this {@link Field} every time the {@link Document} is loaded, reading in the data as it is encounterd.
- * {@link Document#getField(String)} and {@link Document#getFieldable(String)} should not return null.
- *<p/>
- * {@link Document#add(Fieldable)} should be called by the Reader.
- */
- public transient static final FieldSelectorResult LOAD = new FieldSelectorResult(0);
- /**
- * Lazily load this {@link Field}. This means the {@link Field} is valid, but it may not actually contain its data until
- * invoked. {@link Document#getField(String)} SHOULD NOT BE USED. {@link Document#getFieldable(String)} is safe to use and should
- * return a valid instance of a {@link Fieldable}.
- *<p/>
- * {@link Document#add(Fieldable)} should be called by the Reader.
- */
- public transient static final FieldSelectorResult LAZY_LOAD = new FieldSelectorResult(1);
- /**
- * Do not load the {@link Field}. {@link Document#getField(String)} and {@link Document#getFieldable(String)} should return null.
- * {@link Document#add(Fieldable)} is not called.
- * <p/>
- * {@link Document#add(Fieldable)} should not be called by the Reader.
- */
- public transient static final FieldSelectorResult NO_LOAD = new FieldSelectorResult(2);
- /**
- * Load this field as in the {@link #LOAD} case, but immediately return from {@link Field} loading for the {@link Document}. Thus, the
- * Document may not have its complete set of Fields. {@link Document#getField(String)} and {@link Document#getFieldable(String)} should
- * both be valid for this {@link Field}
- * <p/>
- * {@link Document#add(Fieldable)} should be called by the Reader.
- */
- public transient static final FieldSelectorResult LOAD_AND_BREAK = new FieldSelectorResult(3);
- /**
- * Behaves much like {@link #LOAD} but does not uncompress any compressed data. This is used for internal purposes.
- * {@link Document#getField(String)} and {@link Document#getFieldable(String)} should not return null.
- * <p/>
- * {@link Document#add(Fieldable)} should be called by the Reader.
- */
- public transient static final FieldSelectorResult LOAD_FOR_MERGE = new FieldSelectorResult(4);
-
- /** Expert: Load the size of this {@link Field} rather than its value.
- * Size is measured as number of bytes required to store the field == bytes for a binary or any compressed value, and 2*chars for a String value.
- * The size is stored as a binary value, represented as an int in a byte[], with the higher order byte first in [0]
- */
- public transient static final FieldSelectorResult SIZE = new FieldSelectorResult(5);
-
- /** Expert: Like {@link #SIZE} but immediately break from the field loading loop, i.e., stop loading further fields, after the size is loaded */
- public transient static final FieldSelectorResult SIZE_AND_BREAK = new FieldSelectorResult(6);
-
-
-
- private int id;
-
- private FieldSelectorResult(int id) {
- this.id = id;
- }
-
- public boolean equals(Object o) {
- if (this == o) return true;
- if (o == null || getClass() != o.getClass()) return false;
-
- final FieldSelectorResult that = (FieldSelectorResult) o;
-
- if (id != that.id) return false;
-
- return true;
- }
-
- public int hashCode() {
- return id;
- }
-}
+package org.apache.lucene.document;
+
+import java.io.Serializable;
+/**
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Provides information about what should be done with this Field
+ *
+ **/
+//Replace with an enumerated type in 1.5
+public final class FieldSelectorResult implements Serializable {
+
+ /**
+ * Load this {@link Field} every time the {@link Document} is loaded, reading in the data as it is encounterd.
+ * {@link Document#getField(String)} and {@link Document#getFieldable(String)} should not return null.
+ *<p/>
+ * {@link Document#add(Fieldable)} should be called by the Reader.
+ */
+ public transient static final FieldSelectorResult LOAD = new FieldSelectorResult(0);
+ /**
+ * Lazily load this {@link Field}. This means the {@link Field} is valid, but it may not actually contain its data until
+ * invoked. {@link Document#getField(String)} SHOULD NOT BE USED. {@link Document#getFieldable(String)} is safe to use and should
+ * return a valid instance of a {@link Fieldable}.
+ *<p/>
+ * {@link Document#add(Fieldable)} should be called by the Reader.
+ */
+ public transient static final FieldSelectorResult LAZY_LOAD = new FieldSelectorResult(1);
+ /**
+ * Do not load the {@link Field}. {@link Document#getField(String)} and {@link Document#getFieldable(String)} should return null.
+ * {@link Document#add(Fieldable)} is not called.
+ * <p/>
+ * {@link Document#add(Fieldable)} should not be called by the Reader.
+ */
+ public transient static final FieldSelectorResult NO_LOAD = new FieldSelectorResult(2);
+ /**
+ * Load this field as in the {@link #LOAD} case, but immediately return from {@link Field} loading for the {@link Document}. Thus, the
+ * Document may not have its complete set of Fields. {@link Document#getField(String)} and {@link Document#getFieldable(String)} should
+ * both be valid for this {@link Field}
+ * <p/>
+ * {@link Document#add(Fieldable)} should be called by the Reader.
+ */
+ public transient static final FieldSelectorResult LOAD_AND_BREAK = new FieldSelectorResult(3);
+ /**
+ * Behaves much like {@link #LOAD} but does not uncompress any compressed data. This is used for internal purposes.
+ * {@link Document#getField(String)} and {@link Document#getFieldable(String)} should not return null.
+ * <p/>
+ * {@link Document#add(Fieldable)} should be called by the Reader.
+ */
+ public transient static final FieldSelectorResult LOAD_FOR_MERGE = new FieldSelectorResult(4);
+
+ /** Expert: Load the size of this {@link Field} rather than its value.
+ * Size is measured as number of bytes required to store the field == bytes for a binary or any compressed value, and 2*chars for a String value.
+ * The size is stored as a binary value, represented as an int in a byte[], with the higher order byte first in [0]
+ */
+ public transient static final FieldSelectorResult SIZE = new FieldSelectorResult(5);
+
+ /** Expert: Like {@link #SIZE} but immediately break from the field loading loop, i.e., stop loading further fields, after the size is loaded */
+ public transient static final FieldSelectorResult SIZE_AND_BREAK = new FieldSelectorResult(6);
+
+
+
+ private int id;
+
+ private FieldSelectorResult(int id) {
+ this.id = id;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+
+ final FieldSelectorResult that = (FieldSelectorResult) o;
+
+ if (id != that.id) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ return id;
+ }
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/FieldSelectorResult.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/document/Fieldable.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/document/Fieldable.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/document/Fieldable.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/document/Fieldable.java Tue May 20 00:40:54 2008
@@ -1,144 +1,144 @@
-package org.apache.lucene.document;
-
-/**
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
- */
-
-import java.io.Reader;
-import java.io.Serializable;
-
-import org.apache.lucene.analysis.TokenStream;
-
-/**
- * Synonymous with {@link Field}.
- *
- **/
-public interface Fieldable extends Serializable {
- /** Sets the boost factor hits on this field. This value will be
- * multiplied into the score of all hits on this this field of this
- * document.
- *
- * <p>The boost is multiplied by {@link org.apache.lucene.document.Document#getBoost()} of the document
- * containing this field. If a document has multiple fields with the same
- * name, all such values are multiplied together. This product is then
- * multipled by the value {@link org.apache.lucene.search.Similarity#lengthNorm(String,int)}, and
- * rounded by {@link org.apache.lucene.search.Similarity#encodeNorm(float)} before it is stored in the
- * index. One should attempt to ensure that this product does not overflow
- * the range of that encoding.
- *
- * @see org.apache.lucene.document.Document#setBoost(float)
- * @see org.apache.lucene.search.Similarity#lengthNorm(String, int)
- * @see org.apache.lucene.search.Similarity#encodeNorm(float)
- */
- void setBoost(float boost);
-
- /** Returns the boost factor for hits for this field.
- *
- * <p>The default value is 1.0.
- *
- * <p>Note: this value is not stored directly with the document in the index.
- * Documents returned from {@link org.apache.lucene.index.IndexReader#document(int)} and
- * {@link org.apache.lucene.search.Hits#doc(int)} may thus not have the same value present as when
- * this field was indexed.
- *
- * @see #setBoost(float)
- */
- float getBoost();
-
- /** Returns the name of the field as an interned string.
- * For example "date", "title", "body", ...
- */
- String name();
-
- /** The value of the field as a String, or null. If null, the Reader value,
- * binary value, or TokenStream value is used. Exactly one of stringValue(),
- * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
- public String stringValue();
-
- /** The value of the field as a Reader, or null. If null, the String value,
- * binary value, or TokenStream value is used. Exactly one of stringValue(),
- * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
- public Reader readerValue();
-
- /** The value of the field in Binary, or null. If null, the Reader value,
- * String value, or TokenStream value is used. Exactly one of stringValue(),
- * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
- public byte[] binaryValue();
-
- /** The value of the field as a TokenStream, or null. If null, the Reader value,
- * String value, or binary value is used. Exactly one of stringValue(),
- * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
- public TokenStream tokenStreamValue();
-
- /** True iff the value of the field is to be stored in the index for return
- with search hits. It is an error for this to be true if a field is
- Reader-valued. */
- boolean isStored();
-
- /** True iff the value of the field is to be indexed, so that it may be
- searched on. */
- boolean isIndexed();
-
- /** True iff the value of the field should be tokenized as text prior to
- indexing. Un-tokenized fields are indexed as a single word and may not be
- Reader-valued. */
- boolean isTokenized();
-
- /** True if the value of the field is stored and compressed within the index */
- boolean isCompressed();
-
- /** True iff the term or terms used to index this field are stored as a term
- * vector, available from {@link org.apache.lucene.index.IndexReader#getTermFreqVector(int,String)}.
- * These methods do not provide access to the original content of the field,
- * only to terms used to index it. If the original content must be
- * preserved, use the <code>stored</code> attribute instead.
- *
- * @see org.apache.lucene.index.IndexReader#getTermFreqVector(int, String)
- */
- boolean isTermVectorStored();
-
- /**
- * True iff terms are stored as term vector together with their offsets
- * (start and end positon in source text).
- */
- boolean isStoreOffsetWithTermVector();
-
- /**
- * True iff terms are stored as term vector together with their token positions.
- */
- boolean isStorePositionWithTermVector();
-
- /** True iff the value of the filed is stored as binary */
- boolean isBinary();
-
- /** True if norms are omitted for this indexed field */
- boolean getOmitNorms();
-
- /** Expert:
- *
- * If set, omit normalization factors associated with this indexed field.
- * This effectively disables indexing boosts and length normalization for this field.
- */
- void setOmitNorms(boolean omitNorms);
-
- /**
- * Indicates whether a Field is Lazy or not. The semantics of Lazy loading are such that if a Field is lazily loaded, retrieving
- * it's values via {@link #stringValue()} or {@link #binaryValue()} is only valid as long as the {@link org.apache.lucene.index.IndexReader} that
- * retrieved the {@link Document} is still open.
- *
- * @return true if this field can be loaded lazily
- */
- boolean isLazy();
-}
+package org.apache.lucene.document;
+
+/**
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+import java.io.Reader;
+import java.io.Serializable;
+
+import org.apache.lucene.analysis.TokenStream;
+
+/**
+ * Synonymous with {@link Field}.
+ *
+ **/
+public interface Fieldable extends Serializable {
+ /** Sets the boost factor hits on this field. This value will be
+ * multiplied into the score of all hits on this this field of this
+ * document.
+ *
+ * <p>The boost is multiplied by {@link org.apache.lucene.document.Document#getBoost()} of the document
+ * containing this field. If a document has multiple fields with the same
+ * name, all such values are multiplied together. This product is then
+ * multipled by the value {@link org.apache.lucene.search.Similarity#lengthNorm(String,int)}, and
+ * rounded by {@link org.apache.lucene.search.Similarity#encodeNorm(float)} before it is stored in the
+ * index. One should attempt to ensure that this product does not overflow
+ * the range of that encoding.
+ *
+ * @see org.apache.lucene.document.Document#setBoost(float)
+ * @see org.apache.lucene.search.Similarity#lengthNorm(String, int)
+ * @see org.apache.lucene.search.Similarity#encodeNorm(float)
+ */
+ void setBoost(float boost);
+
+ /** Returns the boost factor for hits for this field.
+ *
+ * <p>The default value is 1.0.
+ *
+ * <p>Note: this value is not stored directly with the document in the index.
+ * Documents returned from {@link org.apache.lucene.index.IndexReader#document(int)} and
+ * {@link org.apache.lucene.search.Hits#doc(int)} may thus not have the same value present as when
+ * this field was indexed.
+ *
+ * @see #setBoost(float)
+ */
+ float getBoost();
+
+ /** Returns the name of the field as an interned string.
+ * For example "date", "title", "body", ...
+ */
+ String name();
+
+ /** The value of the field as a String, or null. If null, the Reader value,
+ * binary value, or TokenStream value is used. Exactly one of stringValue(),
+ * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
+ public String stringValue();
+
+ /** The value of the field as a Reader, or null. If null, the String value,
+ * binary value, or TokenStream value is used. Exactly one of stringValue(),
+ * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
+ public Reader readerValue();
+
+ /** The value of the field in Binary, or null. If null, the Reader value,
+ * String value, or TokenStream value is used. Exactly one of stringValue(),
+ * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
+ public byte[] binaryValue();
+
+ /** The value of the field as a TokenStream, or null. If null, the Reader value,
+ * String value, or binary value is used. Exactly one of stringValue(),
+ * readerValue(), binaryValue(), and tokenStreamValue() must be set. */
+ public TokenStream tokenStreamValue();
+
+ /** True iff the value of the field is to be stored in the index for return
+ with search hits. It is an error for this to be true if a field is
+ Reader-valued. */
+ boolean isStored();
+
+ /** True iff the value of the field is to be indexed, so that it may be
+ searched on. */
+ boolean isIndexed();
+
+ /** True iff the value of the field should be tokenized as text prior to
+ indexing. Un-tokenized fields are indexed as a single word and may not be
+ Reader-valued. */
+ boolean isTokenized();
+
+ /** True if the value of the field is stored and compressed within the index */
+ boolean isCompressed();
+
+ /** True iff the term or terms used to index this field are stored as a term
+ * vector, available from {@link org.apache.lucene.index.IndexReader#getTermFreqVector(int,String)}.
+ * These methods do not provide access to the original content of the field,
+ * only to terms used to index it. If the original content must be
+ * preserved, use the <code>stored</code> attribute instead.
+ *
+ * @see org.apache.lucene.index.IndexReader#getTermFreqVector(int, String)
+ */
+ boolean isTermVectorStored();
+
+ /**
+ * True iff terms are stored as term vector together with their offsets
+ * (start and end positon in source text).
+ */
+ boolean isStoreOffsetWithTermVector();
+
+ /**
+ * True iff terms are stored as term vector together with their token positions.
+ */
+ boolean isStorePositionWithTermVector();
+
+ /** True iff the value of the filed is stored as binary */
+ boolean isBinary();
+
+ /** True if norms are omitted for this indexed field */
+ boolean getOmitNorms();
+
+ /** Expert:
+ *
+ * If set, omit normalization factors associated with this indexed field.
+ * This effectively disables indexing boosts and length normalization for this field.
+ */
+ void setOmitNorms(boolean omitNorms);
+
+ /**
+ * Indicates whether a Field is Lazy or not. The semantics of Lazy loading are such that if a Field is lazily loaded, retrieving
+ * it's values via {@link #stringValue()} or {@link #binaryValue()} is only valid as long as the {@link org.apache.lucene.index.IndexReader} that
+ * retrieved the {@link Document} is still open.
+ *
+ * @return true if this field can be loaded lazily
+ */
+ boolean isLazy();
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/Fieldable.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/document/LoadFirstFieldSelector.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/document/LoadFirstFieldSelector.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/document/LoadFirstFieldSelector.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/document/LoadFirstFieldSelector.java Tue May 20 00:40:54 2008
@@ -1,29 +1,29 @@
-package org.apache.lucene.document;
-/**
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
- */
-
-
-/**
- * Load the First field and break.
- * <p/>
- * See {@link FieldSelectorResult#LOAD_AND_BREAK}
- */
-public class LoadFirstFieldSelector implements FieldSelector {
-
- public FieldSelectorResult accept(String fieldName) {
- return FieldSelectorResult.LOAD_AND_BREAK;
- }
+package org.apache.lucene.document;
+/**
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+
+/**
+ * Load the First field and break.
+ * <p/>
+ * See {@link FieldSelectorResult#LOAD_AND_BREAK}
+ */
+public class LoadFirstFieldSelector implements FieldSelector {
+
+ public FieldSelectorResult accept(String fieldName) {
+ return FieldSelectorResult.LOAD_AND_BREAK;
+ }
}
\ No newline at end of file
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/LoadFirstFieldSelector.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/MapFieldSelector.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/document/SetBasedFieldSelector.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/document/SetBasedFieldSelector.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/document/SetBasedFieldSelector.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/document/SetBasedFieldSelector.java Tue May 20 00:40:54 2008
@@ -1,60 +1,60 @@
-package org.apache.lucene.document;
-
-import java.util.Set;
-/**
- * Copyright 2004 The Apache Software Foundation
- *
- * Licensed 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.
- */
-
-/**
- * Declare what fields to load normally and what fields to load lazily
- *
- **/
-public class SetBasedFieldSelector implements FieldSelector {
-
- private Set fieldsToLoad;
- private Set lazyFieldsToLoad;
-
-
-
- /**
- * Pass in the Set of {@link Field} names to load and the Set of {@link Field} names to load lazily. If both are null, the
- * Document will not have any {@link Field} on it.
- * @param fieldsToLoad A Set of {@link String} field names to load. May be empty, but not null
- * @param lazyFieldsToLoad A Set of {@link String} field names to load lazily. May be empty, but not null
- */
- public SetBasedFieldSelector(Set fieldsToLoad, Set lazyFieldsToLoad) {
- this.fieldsToLoad = fieldsToLoad;
- this.lazyFieldsToLoad = lazyFieldsToLoad;
- }
-
- /**
- * Indicate whether to load the field with the given name or not. If the {@link Field#name()} is not in either of the
- * initializing Sets, then {@link org.apache.lucene.document.FieldSelectorResult#NO_LOAD} is returned. If a Field name
- * is in both <code>fieldsToLoad</code> and <code>lazyFieldsToLoad</code>, lazy has precedence.
- *
- * @param fieldName The {@link Field} name to check
- * @return The {@link FieldSelectorResult}
- */
- public FieldSelectorResult accept(String fieldName) {
- FieldSelectorResult result = FieldSelectorResult.NO_LOAD;
- if (fieldsToLoad.contains(fieldName) == true){
- result = FieldSelectorResult.LOAD;
- }
- if (lazyFieldsToLoad.contains(fieldName) == true){
- result = FieldSelectorResult.LAZY_LOAD;
- }
- return result;
- }
+package org.apache.lucene.document;
+
+import java.util.Set;
+/**
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * Licensed 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.
+ */
+
+/**
+ * Declare what fields to load normally and what fields to load lazily
+ *
+ **/
+public class SetBasedFieldSelector implements FieldSelector {
+
+ private Set fieldsToLoad;
+ private Set lazyFieldsToLoad;
+
+
+
+ /**
+ * Pass in the Set of {@link Field} names to load and the Set of {@link Field} names to load lazily. If both are null, the
+ * Document will not have any {@link Field} on it.
+ * @param fieldsToLoad A Set of {@link String} field names to load. May be empty, but not null
+ * @param lazyFieldsToLoad A Set of {@link String} field names to load lazily. May be empty, but not null
+ */
+ public SetBasedFieldSelector(Set fieldsToLoad, Set lazyFieldsToLoad) {
+ this.fieldsToLoad = fieldsToLoad;
+ this.lazyFieldsToLoad = lazyFieldsToLoad;
+ }
+
+ /**
+ * Indicate whether to load the field with the given name or not. If the {@link Field#name()} is not in either of the
+ * initializing Sets, then {@link org.apache.lucene.document.FieldSelectorResult#NO_LOAD} is returned. If a Field name
+ * is in both <code>fieldsToLoad</code> and <code>lazyFieldsToLoad</code>, lazy has precedence.
+ *
+ * @param fieldName The {@link Field} name to check
+ * @return The {@link FieldSelectorResult}
+ */
+ public FieldSelectorResult accept(String fieldName) {
+ FieldSelectorResult result = FieldSelectorResult.NO_LOAD;
+ if (fieldsToLoad.contains(fieldName) == true){
+ result = FieldSelectorResult.LOAD;
+ }
+ if (lazyFieldsToLoad.contains(fieldName) == true){
+ result = FieldSelectorResult.LAZY_LOAD;
+ }
+ return result;
+ }
}
\ No newline at end of file
Propchange: lucene/java/trunk/src/java/org/apache/lucene/document/SetBasedFieldSelector.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListReader.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListReader.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListReader.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListReader.java Tue May 20 00:40:54 2008
@@ -1,114 +1,114 @@
-package org.apache.lucene.index;
-
-/**
- * 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.
- */
-
-import java.io.IOException;
-import java.util.Arrays;
-
-import org.apache.lucene.store.IndexInput;
-
-/**
- * Implements the skip list reader for the default posting list format
- * that stores positions and payloads.
- *
- */
-class DefaultSkipListReader extends MultiLevelSkipListReader {
- private boolean currentFieldStoresPayloads;
- private long freqPointer[];
- private long proxPointer[];
- private int payloadLength[];
-
- private long lastFreqPointer;
- private long lastProxPointer;
- private int lastPayloadLength;
-
-
- DefaultSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval) {
- super(skipStream, maxSkipLevels, skipInterval);
- freqPointer = new long[maxSkipLevels];
- proxPointer = new long[maxSkipLevels];
- payloadLength = new int[maxSkipLevels];
- }
-
- void init(long skipPointer, long freqBasePointer, long proxBasePointer, int df, boolean storesPayloads) {
- super.init(skipPointer, df);
- this.currentFieldStoresPayloads = storesPayloads;
- lastFreqPointer = freqBasePointer;
- lastProxPointer = proxBasePointer;
-
- Arrays.fill(freqPointer, freqBasePointer);
- Arrays.fill(proxPointer, proxBasePointer);
- Arrays.fill(payloadLength, 0);
- }
-
- /** Returns the freq pointer of the doc to which the last call of
- * {@link MultiLevelSkipListReader#skipTo(int)} has skipped. */
- long getFreqPointer() {
- return lastFreqPointer;
- }
-
- /** Returns the prox pointer of the doc to which the last call of
- * {@link MultiLevelSkipListReader#skipTo(int)} has skipped. */
- long getProxPointer() {
- return lastProxPointer;
- }
-
- /** Returns the payload length of the payload stored just before
- * the doc to which the last call of {@link MultiLevelSkipListReader#skipTo(int)}
- * has skipped. */
- int getPayloadLength() {
- return lastPayloadLength;
- }
-
- protected void seekChild(int level) throws IOException {
- super.seekChild(level);
- freqPointer[level] = lastFreqPointer;
- proxPointer[level] = lastProxPointer;
- payloadLength[level] = lastPayloadLength;
- }
-
- protected void setLastSkipData(int level) {
- super.setLastSkipData(level);
- lastFreqPointer = freqPointer[level];
- lastProxPointer = proxPointer[level];
- lastPayloadLength = payloadLength[level];
- }
-
-
- protected int readSkipData(int level, IndexInput skipStream) throws IOException {
- int delta;
- if (currentFieldStoresPayloads) {
- // the current field stores payloads.
- // if the doc delta is odd then we have
- // to read the current payload length
- // because it differs from the length of the
- // previous payload
- delta = skipStream.readVInt();
- if ((delta & 1) != 0) {
- payloadLength[level] = skipStream.readVInt();
- }
- delta >>>= 1;
- } else {
- delta = skipStream.readVInt();
- }
- freqPointer[level] += skipStream.readVInt();
- proxPointer[level] += skipStream.readVInt();
-
- return delta;
- }
-}
+package org.apache.lucene.index;
+
+/**
+ * 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.
+ */
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.apache.lucene.store.IndexInput;
+
+/**
+ * Implements the skip list reader for the default posting list format
+ * that stores positions and payloads.
+ *
+ */
+class DefaultSkipListReader extends MultiLevelSkipListReader {
+ private boolean currentFieldStoresPayloads;
+ private long freqPointer[];
+ private long proxPointer[];
+ private int payloadLength[];
+
+ private long lastFreqPointer;
+ private long lastProxPointer;
+ private int lastPayloadLength;
+
+
+ DefaultSkipListReader(IndexInput skipStream, int maxSkipLevels, int skipInterval) {
+ super(skipStream, maxSkipLevels, skipInterval);
+ freqPointer = new long[maxSkipLevels];
+ proxPointer = new long[maxSkipLevels];
+ payloadLength = new int[maxSkipLevels];
+ }
+
+ void init(long skipPointer, long freqBasePointer, long proxBasePointer, int df, boolean storesPayloads) {
+ super.init(skipPointer, df);
+ this.currentFieldStoresPayloads = storesPayloads;
+ lastFreqPointer = freqBasePointer;
+ lastProxPointer = proxBasePointer;
+
+ Arrays.fill(freqPointer, freqBasePointer);
+ Arrays.fill(proxPointer, proxBasePointer);
+ Arrays.fill(payloadLength, 0);
+ }
+
+ /** Returns the freq pointer of the doc to which the last call of
+ * {@link MultiLevelSkipListReader#skipTo(int)} has skipped. */
+ long getFreqPointer() {
+ return lastFreqPointer;
+ }
+
+ /** Returns the prox pointer of the doc to which the last call of
+ * {@link MultiLevelSkipListReader#skipTo(int)} has skipped. */
+ long getProxPointer() {
+ return lastProxPointer;
+ }
+
+ /** Returns the payload length of the payload stored just before
+ * the doc to which the last call of {@link MultiLevelSkipListReader#skipTo(int)}
+ * has skipped. */
+ int getPayloadLength() {
+ return lastPayloadLength;
+ }
+
+ protected void seekChild(int level) throws IOException {
+ super.seekChild(level);
+ freqPointer[level] = lastFreqPointer;
+ proxPointer[level] = lastProxPointer;
+ payloadLength[level] = lastPayloadLength;
+ }
+
+ protected void setLastSkipData(int level) {
+ super.setLastSkipData(level);
+ lastFreqPointer = freqPointer[level];
+ lastProxPointer = proxPointer[level];
+ lastPayloadLength = payloadLength[level];
+ }
+
+
+ protected int readSkipData(int level, IndexInput skipStream) throws IOException {
+ int delta;
+ if (currentFieldStoresPayloads) {
+ // the current field stores payloads.
+ // if the doc delta is odd then we have
+ // to read the current payload length
+ // because it differs from the length of the
+ // previous payload
+ delta = skipStream.readVInt();
+ if ((delta & 1) != 0) {
+ payloadLength[level] = skipStream.readVInt();
+ }
+ delta >>>= 1;
+ } else {
+ delta = skipStream.readVInt();
+ }
+ freqPointer[level] += skipStream.readVInt();
+ proxPointer[level] += skipStream.readVInt();
+
+ return delta;
+ }
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListReader.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListWriter.java
URL: http://svn.apache.org/viewvc/lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListWriter.java?rev=658136&r1=658135&r2=658136&view=diff
==============================================================================
--- lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListWriter.java (original)
+++ lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListWriter.java Tue May 20 00:40:54 2008
@@ -1,124 +1,124 @@
-package org.apache.lucene.index;
-
-/**
- * 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.
- */
-
-import java.io.IOException;
-import java.util.Arrays;
-
-import org.apache.lucene.store.IndexOutput;
-
-
-/**
- * Implements the skip list writer for the default posting list format
- * that stores positions and payloads.
- *
- */
-class DefaultSkipListWriter extends MultiLevelSkipListWriter {
- private int[] lastSkipDoc;
- private int[] lastSkipPayloadLength;
- private long[] lastSkipFreqPointer;
- private long[] lastSkipProxPointer;
-
- private IndexOutput freqOutput;
- private IndexOutput proxOutput;
-
- private int curDoc;
- private boolean curStorePayloads;
- private int curPayloadLength;
- private long curFreqPointer;
- private long curProxPointer;
-
- DefaultSkipListWriter(int skipInterval, int numberOfSkipLevels, int docCount, IndexOutput freqOutput, IndexOutput proxOutput) {
- super(skipInterval, numberOfSkipLevels, docCount);
- this.freqOutput = freqOutput;
- this.proxOutput = proxOutput;
-
- lastSkipDoc = new int[numberOfSkipLevels];
- lastSkipPayloadLength = new int[numberOfSkipLevels];
- lastSkipFreqPointer = new long[numberOfSkipLevels];
- lastSkipProxPointer = new long[numberOfSkipLevels];
- }
-
- /**
- * Sets the values for the current skip data.
- */
- void setSkipData(int doc, boolean storePayloads, int payloadLength) {
- this.curDoc = doc;
- this.curStorePayloads = storePayloads;
- this.curPayloadLength = payloadLength;
- this.curFreqPointer = freqOutput.getFilePointer();
- this.curProxPointer = proxOutput.getFilePointer();
- }
-
- protected void resetSkip() {
- super.resetSkip();
- Arrays.fill(lastSkipDoc, 0);
- Arrays.fill(lastSkipPayloadLength, -1); // we don't have to write the first length in the skip list
- Arrays.fill(lastSkipFreqPointer, freqOutput.getFilePointer());
- Arrays.fill(lastSkipProxPointer, proxOutput.getFilePointer());
- }
-
- protected void writeSkipData(int level, IndexOutput skipBuffer) throws IOException {
- // To efficiently store payloads in the posting lists we do not store the length of
- // every payload. Instead we omit the length for a payload if the previous payload had
- // the same length.
- // However, in order to support skipping the payload length at every skip point must be known.
- // So we use the same length encoding that we use for the posting lists for the skip data as well:
- // Case 1: current field does not store payloads
- // SkipDatum --> DocSkip, FreqSkip, ProxSkip
- // DocSkip,FreqSkip,ProxSkip --> VInt
- // DocSkip records the document number before every SkipInterval th document in TermFreqs.
- // Document numbers are represented as differences from the previous value in the sequence.
- // Case 2: current field stores payloads
- // SkipDatum --> DocSkip, PayloadLength?, FreqSkip,ProxSkip
- // DocSkip,FreqSkip,ProxSkip --> VInt
- // PayloadLength --> VInt
- // In this case DocSkip/2 is the difference between
- // the current and the previous value. If DocSkip
- // is odd, then a PayloadLength encoded as VInt follows,
- // if DocSkip is even, then it is assumed that the
- // current payload length equals the length at the previous
- // skip point
- if (curStorePayloads) {
- int delta = curDoc - lastSkipDoc[level];
- if (curPayloadLength == lastSkipPayloadLength[level]) {
- // the current payload length equals the length at the previous skip point,
- // so we don't store the length again
- skipBuffer.writeVInt(delta * 2);
- } else {
- // the payload length is different from the previous one. We shift the DocSkip,
- // set the lowest bit and store the current payload length as VInt.
- skipBuffer.writeVInt(delta * 2 + 1);
- skipBuffer.writeVInt(curPayloadLength);
- lastSkipPayloadLength[level] = curPayloadLength;
- }
- } else {
- // current field does not store payloads
- skipBuffer.writeVInt(curDoc - lastSkipDoc[level]);
- }
- skipBuffer.writeVInt((int) (curFreqPointer - lastSkipFreqPointer[level]));
- skipBuffer.writeVInt((int) (curProxPointer - lastSkipProxPointer[level]));
-
- lastSkipDoc[level] = curDoc;
- //System.out.println("write doc at level " + level + ": " + curDoc);
-
- lastSkipFreqPointer[level] = curFreqPointer;
- lastSkipProxPointer[level] = curProxPointer;
- }
-
-}
+package org.apache.lucene.index;
+
+/**
+ * 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.
+ */
+
+import java.io.IOException;
+import java.util.Arrays;
+
+import org.apache.lucene.store.IndexOutput;
+
+
+/**
+ * Implements the skip list writer for the default posting list format
+ * that stores positions and payloads.
+ *
+ */
+class DefaultSkipListWriter extends MultiLevelSkipListWriter {
+ private int[] lastSkipDoc;
+ private int[] lastSkipPayloadLength;
+ private long[] lastSkipFreqPointer;
+ private long[] lastSkipProxPointer;
+
+ private IndexOutput freqOutput;
+ private IndexOutput proxOutput;
+
+ private int curDoc;
+ private boolean curStorePayloads;
+ private int curPayloadLength;
+ private long curFreqPointer;
+ private long curProxPointer;
+
+ DefaultSkipListWriter(int skipInterval, int numberOfSkipLevels, int docCount, IndexOutput freqOutput, IndexOutput proxOutput) {
+ super(skipInterval, numberOfSkipLevels, docCount);
+ this.freqOutput = freqOutput;
+ this.proxOutput = proxOutput;
+
+ lastSkipDoc = new int[numberOfSkipLevels];
+ lastSkipPayloadLength = new int[numberOfSkipLevels];
+ lastSkipFreqPointer = new long[numberOfSkipLevels];
+ lastSkipProxPointer = new long[numberOfSkipLevels];
+ }
+
+ /**
+ * Sets the values for the current skip data.
+ */
+ void setSkipData(int doc, boolean storePayloads, int payloadLength) {
+ this.curDoc = doc;
+ this.curStorePayloads = storePayloads;
+ this.curPayloadLength = payloadLength;
+ this.curFreqPointer = freqOutput.getFilePointer();
+ this.curProxPointer = proxOutput.getFilePointer();
+ }
+
+ protected void resetSkip() {
+ super.resetSkip();
+ Arrays.fill(lastSkipDoc, 0);
+ Arrays.fill(lastSkipPayloadLength, -1); // we don't have to write the first length in the skip list
+ Arrays.fill(lastSkipFreqPointer, freqOutput.getFilePointer());
+ Arrays.fill(lastSkipProxPointer, proxOutput.getFilePointer());
+ }
+
+ protected void writeSkipData(int level, IndexOutput skipBuffer) throws IOException {
+ // To efficiently store payloads in the posting lists we do not store the length of
+ // every payload. Instead we omit the length for a payload if the previous payload had
+ // the same length.
+ // However, in order to support skipping the payload length at every skip point must be known.
+ // So we use the same length encoding that we use for the posting lists for the skip data as well:
+ // Case 1: current field does not store payloads
+ // SkipDatum --> DocSkip, FreqSkip, ProxSkip
+ // DocSkip,FreqSkip,ProxSkip --> VInt
+ // DocSkip records the document number before every SkipInterval th document in TermFreqs.
+ // Document numbers are represented as differences from the previous value in the sequence.
+ // Case 2: current field stores payloads
+ // SkipDatum --> DocSkip, PayloadLength?, FreqSkip,ProxSkip
+ // DocSkip,FreqSkip,ProxSkip --> VInt
+ // PayloadLength --> VInt
+ // In this case DocSkip/2 is the difference between
+ // the current and the previous value. If DocSkip
+ // is odd, then a PayloadLength encoded as VInt follows,
+ // if DocSkip is even, then it is assumed that the
+ // current payload length equals the length at the previous
+ // skip point
+ if (curStorePayloads) {
+ int delta = curDoc - lastSkipDoc[level];
+ if (curPayloadLength == lastSkipPayloadLength[level]) {
+ // the current payload length equals the length at the previous skip point,
+ // so we don't store the length again
+ skipBuffer.writeVInt(delta * 2);
+ } else {
+ // the payload length is different from the previous one. We shift the DocSkip,
+ // set the lowest bit and store the current payload length as VInt.
+ skipBuffer.writeVInt(delta * 2 + 1);
+ skipBuffer.writeVInt(curPayloadLength);
+ lastSkipPayloadLength[level] = curPayloadLength;
+ }
+ } else {
+ // current field does not store payloads
+ skipBuffer.writeVInt(curDoc - lastSkipDoc[level]);
+ }
+ skipBuffer.writeVInt((int) (curFreqPointer - lastSkipFreqPointer[level]));
+ skipBuffer.writeVInt((int) (curProxPointer - lastSkipProxPointer[level]));
+
+ lastSkipDoc[level] = curDoc;
+ //System.out.println("write doc at level " + level + ": " + curDoc);
+
+ lastSkipFreqPointer[level] = curFreqPointer;
+ lastSkipProxPointer[level] = curProxPointer;
+ }
+
+}
Propchange: lucene/java/trunk/src/java/org/apache/lucene/index/DefaultSkipListWriter.java
------------------------------------------------------------------------------
svn:eol-style = native