Lucene DistanceQueryBuilder - PullRequest
       3

Lucene DistanceQueryBuilder

2 голосов
/ 15 февраля 2011

У меня возникли некоторые проблемы с пониманием 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

1 Ответ

0 голосов
/ 03 марта 2012

Попробуйте использовать меньшее расстояние, чем 1000, например 2.

...