devios1
devios1

Reputation: 38025

Is the order of multi-valued fields in Lucene stable?

Suppose I add several values to a Document under the same field name:

doc.Add( new Field( "tag", "one" ) );
doc.Add( new Field( "tag", "two" ) );
doc.Add( new Field( "tag", "three" ) );
doc.Add( new Field( "tag", "four" ) );

If I then later retrieve these fields from a new instance of Document (from a search result), am I guaranteed that the order of the Fields in the array will remain the same?

Field[] fields = doc.GetFields( "tag" );

Debug.Assert( fields[0].StringValue() == "one" );
Debug.Assert( fields[1].StringValue() == "two" );
Debug.Assert( fields[2].StringValue() == "three" );
Debug.Assert( fields[3].StringValue() == "four" );

Upvotes: 1

Views: 743

Answers (1)

Spike
Spike

Reputation: 260

Current code does, but states no guarantees whatsoever, so it may change at any time.

I wouldn't depend on it.

Upvotes: 2

Related Questions