У меня возникли некоторые проблемы с пониманием Lucene Spatial (частично из-за отсутствия документации и хороших примеров, а частично из-за глупости, я уверен!)
Я пытаюсь выполнить запрос: -
DistanceQueryBuilder builder = new DistanceQueryBuilder(new Double(point[1]), new Double(point[0]), 1000d,
"geohash", CartesianTierPlotter.DEFALT_FIELD_PREFIX, true);
ConstantScoreQuery queryx = new ConstantScoreQuery(builder.getFilter());
org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery(queryx,Address.class);
Я уверен, что есть результаты в пределах 1000 миль от предоставленных координат, но я не знаю, как начать их отладку.
Используя Люка для просмотра индекса, я убедился, что по крайней мере 2 геохеша правильно конвертируют в Lat и long, которые находятся в данном регионе.
В индексе также есть поле для _tier_9, то есть уровня, используемого поиском.
Я уверен, что это что-то простое, что мне не хватает, любая помощь будет отличной.
Я также провел тест, как показано ниже, чтобы проверить, что адресные объекты найдены этим методом, и это сработало.
QueryBuilder qb = fullTextSession.getSearchFactory()
.buildQueryBuilder().forEntity( Address.class ).get();
org.apache.lucene.search.Query qbx = qb.all().createQuery();
org.hibernate.Query fullTextQueryASD = fullTextSession.createFullTextQuery(qbx,Address.class);
List resultASD = fullTextQueryASD.list(); //return a list of managed objects
Приветствие
Rob