У меня есть индекс Lucene, который заполняется из базы данных. Я храню/индексирую некоторые поля, а затем добавляю поле FullText, в котором я индексирую содержимое всех остальных полей, поэтому я могу выполнить общий поиск.Lucene - Поиск нескольких терминов в разных полях
Теперь, скажем, у меня есть документ со следующими двумя полями: FLD1 - «Samsung выпускает новый 22-дюймовый ЖК-экран» fld2 - «батареи Sony Ericsson телефона взрываются»
Если пользователь делает «Samsung phone», он, вероятно, просто хочет получать новости о телефонах samsung, а не документ с информацией о экране samsung и телефоне sony, но при поиске в поле FullText я получу это как действительный результат. Есть ли хороший способ справиться с этим?
Я думал индексации с некоторым сепаратором и делает SpanNotQuery, поэтому FullText поле будет иметь это содержание: «Samsung релизы батареи новый 22-дюймовый ЖК-экран MYLUCENESEPARATOR Sony Ericsson телефона взорваться», а затем делает SpanNotQuery с MYLUCENESEPARATOR как нераспространяющийся термин.
Это хорошее решение? Имеет ли он масштаб с более чем двумя терминами? Я боюсь, что это будет убийца производительности. Есть ли лучший способ достичь этого?
Я принял ваш ответ, но забыл проголосовать. Возможно, немного поздно, но просто сделал это сейчас :-) – raven
Спасибо, Хайме. –