From: <syn...@us...> - 2008-06-26 15:10:21
|
Revision: 2667 http://clucene.svn.sourceforge.net/clucene/?rev=2667&view=rev Author: synhershko Date: 2008-06-26 08:10:08 -0700 (Thu, 26 Jun 2008) Log Message: ----------- Updating document::Document Modified Paths: -------------- branches/lucene2_3_2/src/CLucene/document/Document.cpp branches/lucene2_3_2/src/CLucene/document/Document.h branches/lucene2_3_2/src/CLucene/files_list.txt branches/lucene2_3_2/src/CLucene/index/DocumentWriter.cpp branches/lucene2_3_2/src/CLucene/index/FieldInfos.cpp branches/lucene2_3_2/src/CLucene/index/FieldsWriter.cpp Modified: branches/lucene2_3_2/src/CLucene/document/Document.cpp =================================================================== --- branches/lucene2_3_2/src/CLucene/document/Document.cpp 2008-06-12 19:45:35 UTC (rev 2666) +++ branches/lucene2_3_2/src/CLucene/document/Document.cpp 2008-06-26 15:10:08 UTC (rev 2667) @@ -106,7 +106,7 @@ fieldList = _CLNEW DocumentFieldEnumeration::DocumentFieldList(&field, fieldList); } - void Document::setBoost(float_t boost) { + void Document::setBoost(const float_t boost) { this->boost = boost; } @@ -137,6 +137,10 @@ } DocumentFieldEnumeration* Document::fields() const { + return getFields(); + } + + DocumentFieldEnumeration* Document::getFields() const { return _CLNEW DocumentFieldEnumeration(fieldList); } @@ -205,7 +209,7 @@ } TCHAR** Document::getValues(const TCHAR* name) { - DocumentFieldEnumeration* it = fields(); + DocumentFieldEnumeration* it = getFields(); int32_t count = 0; while ( it->hasMoreElements() ){ Field* f = it->nextElement(); @@ -214,7 +218,7 @@ count++; } _CLDELETE(it); - it = fields(); + it = getFields(); //todo: there must be a better way of doing this, we are doing two iterations of the fields TCHAR** ret = NULL; Modified: branches/lucene2_3_2/src/CLucene/document/Document.h =================================================================== --- branches/lucene2_3_2/src/CLucene/document/Document.h 2008-06-12 19:45:35 UTC (rev 2666) +++ branches/lucene2_3_2/src/CLucene/document/Document.h 2008-06-26 15:10:08 UTC (rev 2667) @@ -54,9 +54,38 @@ DocumentFieldEnumeration::DocumentFieldList* fieldList; float_t boost; public: + /** Constructs a new document with no fields. */ Document(); + ~Document(); + /** Sets a boost factor for hits on any field of this document. This value + * will be multiplied into the score of all hits on this document. + * + * <p>The default value is 1.0. + * + * <p>Values are multiplied into the value of {@link Field#getBoost()} of + * each field in this document. Thus, this method in effect sets a default + * boost for the fields of this document. + * + * @see Field#setBoost(float) + */ + void setBoost(const float_t boost); + + /** Returns, at indexing time, the boost factor as set by {@link #setBoost(float)}. + * + * <p>Note that once a document is indexed this value is no longer available + * from the index. At search time, for retrieved documents, this method always + * returns 1. This however does not mean that the boost value set at indexing + * time was ignored - it was just combined with other indexing time factors and + * stored elsewhere, for better indexing and search performance. (For more + * information see the "norm(t,d)" part of the scoring formula in + * {@link Similarity}.) + * + * @see #setBoost(float) + */ + float_t getBoost() const; + /** * <p>Adds a field to a document. Several fields may be added with * the same name. In this case, if the fields are indexed, their text is @@ -69,51 +98,7 @@ * */ void add(Field& field); - /** Returns a field with the given name if any exist in this document, or - * null. If multiple fields exists with this name, this method returns the - * first value added. - * Note: name is case sensitive - */ - Field* getField(const TCHAR* name) const; - - /** Returns the string value of the field with the given name if any exist in - * this document, or null. If multiple fields exist with this name, this - * method returns the first value added. If only binary fields with this name - * exist, returns null. - * Note: name is case sensitive - */ - const TCHAR* get(const TCHAR* field) const; - /** Returns an Enumeration of all the fields in a document. */ - DocumentFieldEnumeration* fields() const; - /** Prints the fields of a document for human consumption. */ - TCHAR* toString() const; - - /** Sets a boost factor for hits on any field of this document. This value - * will be multiplied into the score of all hits on this document. - * - * <p>Values are multiplied into the value of {@link Field#getBoost()} of - * each field in this document. Thus, this method in effect sets a default - * boost for the fields of this document. - * - * @see Field#setBoost(float_t) - */ - void setBoost(float_t boost); - - /** Returns the boost factor for hits on any field of this document. - * - * <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 IndexReader#document(int32_t, Document*)} and - * {@link Hits#doc(int32_t, Document*)} may thus not have the same value present as when - * this document was indexed. - * - * @see #setBoost(float_t) - */ - float_t getBoost() const; - - /** * <p>Removes field with the specified name from the document. * If multiple fields exist with this name, this method removes the first field that has been added. @@ -126,7 +111,7 @@ * Note: name is case sensitive */ void removeField(const TCHAR* name); - + /** * <p>Removes all fields with the given name from the document. * If there is no field with the specified name, the document remains unchanged.</p> @@ -139,13 +124,45 @@ */ void removeFields(const TCHAR* name); + /** Returns a field with the given name if any exist in this document, or + * null. If multiple fields exists with this name, this method returns the + * first value added. + * Note: name is case sensitive + * Do not use this method with lazy loaded fields. + */ + Field* getField(const TCHAR* name) const; + + /** Returns the string value of the field with the given name if any exist in + * this document, or null. If multiple fields exist with this name, this + * method returns the first value added. If only binary fields with this name + * exist, returns null. + * Note: name is case sensitive + */ + const TCHAR* get(const TCHAR* field) const; + + /** Returns an Enumeration of all the fields in a document. + * @deprecated use {@link #getFields()} instead + */ + _CL_DEPRECATED( getFields() ) DocumentFieldEnumeration* fields() const; + + /** Returns a List of all the fields in a document. + * <p>Note that fields which are <i>not</i> {@link Field#isStored() stored} are + * <i>not</i> available in documents retrieved from the index, e.g. with {@link + * Hits#doc(int)}, {@link Searcher#doc(int)} or {@link IndexReader#document(int)}. + */ + DocumentFieldEnumeration* getFields() const; + + /** Prints the fields of a document for human consumption. */ + TCHAR* toString() const; + + /** * Returns an array of values of the field specified as the method parameter. * This method can return <code>null</code>. * Note: name is case sensitive * * @param name the name of the field - * @return a <code>String[]</code> of field values + * @return a <code>TCHAR**</code> of field values or <code>null</code> */ TCHAR** getValues(const TCHAR* name); Modified: branches/lucene2_3_2/src/CLucene/files_list.txt =================================================================== (Binary files differ) Modified: branches/lucene2_3_2/src/CLucene/index/DocumentWriter.cpp =================================================================== --- branches/lucene2_3_2/src/CLucene/index/DocumentWriter.cpp 2008-06-12 19:45:35 UTC (rev 2666) +++ branches/lucene2_3_2/src/CLucene/index/DocumentWriter.cpp 2008-06-26 15:10:08 UTC (rev 2667) @@ -218,7 +218,7 @@ void DocumentWriter::invertDocument(const Document* doc) { - DocumentFieldEnumeration* fields = doc->fields(); + DocumentFieldEnumeration* fields = doc->getFields(); try { while (fields->hasMoreElements()) { Field* field = (Field*)fields->nextElement(); Modified: branches/lucene2_3_2/src/CLucene/index/FieldInfos.cpp =================================================================== --- branches/lucene2_3_2/src/CLucene/index/FieldInfos.cpp 2008-06-12 19:45:35 UTC (rev 2666) +++ branches/lucene2_3_2/src/CLucene/index/FieldInfos.cpp 2008-06-26 15:10:08 UTC (rev 2667) @@ -64,7 +64,7 @@ } void FieldInfos::add(const Document* doc) { - DocumentFieldEnumeration* fields = doc->fields(); + DocumentFieldEnumeration* fields = doc->getFields(); Field* field; while (fields->hasMoreElements()) { field = fields->nextElement(); Modified: branches/lucene2_3_2/src/CLucene/index/FieldsWriter.cpp =================================================================== --- branches/lucene2_3_2/src/CLucene/index/FieldsWriter.cpp 2008-06-12 19:45:35 UTC (rev 2666) +++ branches/lucene2_3_2/src/CLucene/index/FieldsWriter.cpp 2008-06-26 15:10:08 UTC (rev 2667) @@ -100,7 +100,7 @@ indexStream->writeLong(fieldsStream->getFilePointer()); int32_t storedCount = 0; - DocumentFieldEnumeration* fields = doc->fields(); + DocumentFieldEnumeration* fields = doc->getFields(); while (fields->hasMoreElements()) { Field* field = fields->nextElement(); if (field->isStored()) @@ -109,7 +109,7 @@ _CLDELETE(fields); fieldsStream->writeVInt(storedCount); - fields = doc->fields(); + fields = doc->getFields(); while (fields->hasMoreElements()) { Field* field = fields->nextElement(); if (field->isStored()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |