мы используем Hibernate Search в нашем приложении. Используем огранку. Недавно мы обнаружили большое ограничение. Границы полей, которые могут иметь несколько значений, не работают должным образом с Hibernate Search — если в документе есть несколько значений для фасетного поля (например, несколько категорий), учитывается только одно из значений.
В настоящее время я могу думать о паре двух решений:
- используйте bobo-browse (http://code.google.com/p/bobo-browse/)
- Солр (http://lucene.apache.org/solr/)
В обоих решениях мы продолжаем поддерживать индекс с помощью Hiberante Search и делать запросы, как и раньше (используя Hiberante Search), и запускать дополнительный запрос bobo-browse или solr для фасетирования, где это необходимо (bobo-browse или solr будут использовать индекс в натуральном выражении). "только для чтения"). Проблема в том, что мы довольно часто обновляем индекс, а в фасетных запросах хотелось бы получать действительно свежие данные. Bobo-browse не интегрируется автоматически с поиском Hiberante, и чтобы поддерживать поиск в актуальном состоянии, у меня могут возникнуть некоторые проблемы (например, https://groups.google.com/forum/?fromgroups=#).!topic/bobo-browse/sn_Efc-YClU). Документация выглядит немного неопрятной и еще не завершенной. Solr, с другой стороны, кажется действительно важной вещью, которую нужно добавить, просто чтобы правильно работать с огранкой. И я все еще боюсь, что у меня могут возникнуть проблемы с обновлением/обновлением индекса.
Есть ли у вас опыт в этом вопросе? Какие-либо предложения?