2

我在理解 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  

干杯抢

4

1 回答 1

0

尝试使用小于 1000 的距离值,例如 2。

于 2012-03-03T10:43:53.560 回答