Я использую Hibernate Search 5 для реализации реализации полнотекстового сервиса с Apache Lucene. Я могу заставить текстовый поиск работать, выполнив шаги в этом сайте .
Теперь мне нужно добавить поля географического местоположения (широта / долгота) в сущности и обратиться к эта документация , кажется, что hibernate позволяет определить ее с помощью аннотации @Latitude
& @Longitude
.
Мое требование - найти все объекты, которые соответствуют данному ключевому слову и попадают в ограничивающий гео-полигон ( учитывая верхнюю левую угловую точку и нижнюю правую угловую точку ограничительной рамки).
Обращаясь далее в документации по спящему режиму, я нашел поддержку для поиска сущностей на определенном расстоянии c (больше похоже на ограничивающий круг) как показано ниже
org.apache.lucene.search.Query luceneQuery = builder
.spatial()
.within( radius, Unit.KM )
.ofLatitude( centerLatitude )
.andLongitude( centerLongitude )
.createQuery();
Есть ли способ выполнить поиск с помощью ограничивающего многоугольника вместо радиуса?
В качестве обходного пути я могу дать радиус, достаточно большой, чтобы ограничить свой ящик, однако я буду в конечном итоге делать перебор данных.