|
using System;
using System.Collections.Generic;
using Lucene.Net.Documents;
namespace Raven.Database.Indexing
{
public class IndexDefinition
{
public string Map { get; set; }
public string Reduce { get; set; }
public bool IsMapReduce
{
get { return Reduce != null; }
}
public Dictionary<string, FieldStorage> Stores { get; set; }
public Dictionary<string, FieldIndexing> Indexes { get; set; }
public Field.Store GetStorage(string name)
{
if(Stores == null)
return Field.Store.YES;
FieldStorage value;
if (Stores.TryGetValue(name, out value) == false)
return Field.Store.YES;
switch (value)
{
case FieldStorage.Yes:
return Field.Store.YES;
case FieldStorage.No:
return Field.Store.NO;
case FieldStorage.Compress:
return Field.Store.COMPRESS;
default:
throw new ArgumentOutOfRangeException();
}
}
public Field.Index GetIndex(string name)
{
if (Indexes == null)
return Field.Index.TOKENIZED;
FieldIndexing value;
if (Indexes.TryGetValue(name, out value) == false)
return Field.Index.TOKENIZED;
switch (value)
{
case FieldIndexing.No:
return Field.Index.NO;
case FieldIndexing.NoNorms:
return Field.Index.NO_NORMS;
case FieldIndexing.Tokenized:
return Field.Index.TOKENIZED;
case FieldIndexing.Untokenized:
return Field.Index.UN_TOKENIZED;
default:
throw new ArgumentOutOfRangeException();
}
}
public IndexDefinition()
{
Indexes = new Dictionary<string, FieldIndexing>();
Stores = new Dictionary<string, FieldStorage>();
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I've been a software developer since 1996 and have enjoyed C# since 2003. I have a Bachelor's degree in Computer Science and for some reason, a Master's degree in Business Administration. I currently do software development contracting/consulting.
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.