Привет. Я создаю поисковое приложение, используя lucene. Некоторые из моих запросов сложны. Например, Мои документы содержат поля местоположение и население, где местоположение - это не проанализированное поле, а население - числовое поле. Теперь мне нужно вернуть все документы, которые имеют местоположение как "Сан-Франциско" и население между 10000 и 20000. Если я объединю эти два поля и создам запрос, подобный этому:
местоположение: Сан-Франциско И население: [10000 - 20000], я не получаю правильный результат. Любые предложения о том, почему это может происходить и что я могу сделать.
Кроме того, при построении сложных запросов некоторые поля, которые я включаю, анализируются, а другие не анализируются. Например, поле местоположения не анализируется и содержит такие термины, как Чикаго, Сан-Франциско и так далее. При этом поле сводки анализируется и, как правило, содержит описательный абзац.
Рассмотрим этот запрос:
расположение: Сан-Франциско И резюме: "отличные рестораны"
Теперь, если я использую StandardAnalyzer во время поиска, я не получу правильные результаты, когда поле местоположения содержит термин, такой как san-francisco или los-angeles (т.е. он не может обрабатывать дефис между ними), но если я использую анализатор ключевых слов для запроса я также не получаю правильных результатов, потому что он не может найти фразу "отличные рестораны" в поле сводки.