並べ替えるには IndexDefinition にフィールドを追加し、SortOptionを Int またはより適切なものに定義する必要があります (ただし、デフォルトである String を使用したくありません)。
例のように Linq API を使用する場合は、Token_Length という名前のフィールドをインデックスの Map 関数に追加する必要があります (Matt のコメントを参照)。
from doc in docs
select new
{
...
Token_Length = doc.TokenLength
}
そして、Linq API を使用してクエリを実行できます。
var result = session.Query<Entity, IndexDefinition>()
.Where(condition)
.OrderBy(x => x.Token.Length);
または、フィールドの名前を TokenLength (または Token_Length 以外のもの) にしたい場合は、LuceneQuery を使用できます。
from doc in docs
select new
{
...
TokenLength = doc.Token.Length
}
そして、次のようにクエリします。
var result = session.Advanced.LuceneQuery<Entity, IndexDefinition>()
.Where(condition)
.OrderBy("TokenLength");