Кратко:
Была у меня проблема - нужно было добавить fulltext поиск. Для решения данной проблемы я выбрал Hibernate Search и начал его изучать. Поиск нужно было производить не по всему приложению, а только по документам, доступным пользователю. Логичное решение - отобрать документы при помощи HQL запроса, а потом произвести по ним поиск при помощи Hibernate Search. И начал я читать документацию в поисках ответа на данный вопрос. Читал, читал... а ответа все нет и нет... Задал вопрос на форуме - оказалось, так сделать нельзя - можно либо искать в SQL базе, либо в индексе Lucene. На время я на эту тему забил...
И вот недавно меня постела идея - что если строить множество маленьких индексов и в момент поиска определять, в каком индексе производить поиск:
- Комбинировать HQL (Criteria API) и Hibernate Search нельзя
- Возможно вам подойдет Sharding....
Полно:
Была у меня проблема - нужно было добавить fulltext поиск. Для решения данной проблемы я выбрал Hibernate Search и начал его изучать. Поиск нужно было производить не по всему приложению, а только по документам, доступным пользователю. Логичное решение - отобрать документы при помощи HQL запроса, а потом произвести по ним поиск при помощи Hibernate Search. И начал я читать документацию в поисках ответа на данный вопрос. Читал, читал... а ответа все нет и нет... Задал вопрос на форуме - оказалось, так сделать нельзя - можно либо искать в SQL базе, либо в индексе Lucene. На время я на эту тему забил...
И вот недавно меня постела идея - что если строить множество маленьких индексов и в момент поиска определять, в каком индексе производить поиск:
- Все документы пользователя UserA отнести к индексу index_usera, пользователя UserB - index_userb.
- Если пользователь UserA ищет - искать по индексу index_usera, если UserB...
На этот раз я сразу задал вопрос на форуме и в тот же день получил ответ:
- Для индексации используем Sharding
- Для поиска используем Shard Filter
Здесь вы найдете хороший (и более развернутый) пост по той же самой теме.
Комментариев нет:
Отправить комментарий