Lucene.Net - Получить разные категории - PullRequest
0 голосов
/ 16 марта 2012

Я создал следующий документ:

var document = new Document();
document.Add(new Field("category", "foo", Field.Store.YES, Field.Index.NOT_ANALYZED));
...

У меня есть около 10 миллионов документов, которые относятся к 8 различным категориям. Я хотел бы получить все отдельные категории (получить все документы и прочитать значение поля category), выполнив поисковый запрос. Это возможно?

Другой подход заключается в создании списка категорий при перестроении индекса и записи этих значений в базу данных.

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

Проверьте метод IndexReader.Terms () .

Если вы укажете пустое Термин для поля, он вернет TermEnum, содержащий все термины для этого поля.

TermEnum terms = indexReader.Terms(new Term("category"));
// enumerate the terms
0 голосов
/ 21 декабря 2012

Чтобы расширить решение Beaulac для будущего использования ...

Чтобы получить только уникальный набор результатов, вы должны выполнить итерации по таким терминам:

while (null != terms.Term) {
    If (term.Field.Equals("category")) {
        // do something with this term
    }
    terms.Next();
}
...