Я не знаком с C # API, но он очень похож на Java.
Этот код выполняет для получения экземпляра IndexReader
с доступом только для чтения, который используется длячитать данные из сегментов индекса Lucene, хранящихся в directory
.Затем он получает перечисление всех терминов, начиная с заданного.Словарь (часть индекса, в которой хранятся термины) в Lucene состоит из .tis
файлов, упорядоченных лексикографически сначала по имени поля, а затем по тексту термина.
Таким образом, это утверждение дает вам перечисление всех текстов терминов, начиная сначало поля city
(кроме того: в Java лучше написать new Term("city")
).Теперь вам нужно выяснить C # API этого перечисления, а затем пройтись по нему, пока не получите Term
, который имеет что-то отличное от field()
.
Последнее замечание: как правило, вам следует избегать подобных вещей: это может, например, ограничить вашу способность распространять индекс.Если окажется, что это то, что вы делаете в самом начале использования Lucene, то, вероятно, вы используете его больше как базу данных документов, чем как библиотеку поиска.