たとえば、luceneインデックスに「color」というフィールドがある場合。そしてもちろん、その価値は異なります。
次に、ドロップダウンのある「高度な検索ページ」があります。そのドロップダウンに、「色」フィールドに含まれるすべての使用可能な値(個別)を表示したいと思います。
LuceneのバージョンはVersion.LUCENE_29です。
編集:解決策を見つけました、lucene.netのフィールドで利用可能なすべての値を見つけてください
private List<string> GetAvailableFields(string fieldName)
{
List<string> fieldValues;
using (var readerRepository = new LucineRepository(RepositoryPath))
{
var reader = readerRepository.Reader;
fieldValues = reader.UniqueTermsFromField(fieldName).ToList();
reader.Close();
}
return fieldValues;
}
public static class ReaderExtentions
{
public static IEnumerable<string> UniqueTermsFromField(this IndexReader reader, string field)
{
var termEnum = reader.Terms(new Term(field));
do
{
var currentTerm = termEnum.Term();
if (currentTerm.Field() != field)
yield break;
yield return currentTerm.Text();
} while (termEnum.Next());
}
}
乾杯、トミー。