В настоящее время мы используем Lucene 2.1.0 для поиска по нашему сайту, и мы столкнулись с трудной проблемой: одно из наших полей индекса игнорируется во время целевого поиска. Вот код для добавления поля к документу в нашем индексе:
// Add market_local to index
contactDocument.add(
new Field(
"market_local"
, StringUtils.objectToString(
currClip.get(
"market_local"
)
)
, Field.Store.YES
, Field.Index.UN_TOKENIZED
)
);
Выполнение запроса (*) к индексу вернет следующие результаты:
Result 1:
title: Foo Bar
market_local: Local
Result 2:
title: Bar Foo
market_local: National
Выполнение целевого запроса:
+( market_local:Local )
не найдет результатов.
Я понимаю, что это очень специфический вопрос, я просто пытаюсь получить информацию о том, с чего начать отладку этой проблемы, так как я новичок в Lucene.
UPDATE
Установлен Люк, проверяется последний индекс ... Поле market_local доступно в поиске, поэтому, если я выполню что-то вроде:
market_local:Local
Поиск работает корректно (в луки). Сейчас я перехожу к нашему коду анализатора. Можно ли как-нибудь объяснить эту проблему тем фактом, что наше поисковое приложение использует Lucene 2.1.0, а последняя версия Luke использует 2.3.0?