我在理解 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 英里内有结果,但我不知道如何开始调试它。
使用 Luke 查看索引,我已验证至少 2 个 geohashes 正确转换为给定区域内的 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
干杯抢