Java GWT&x2B;Lucene spatial(通过Hibernate搜索)

Java GWT&x2B;Lucene spatial(通过Hibernate搜索),java,lucene,spatial,hibernate-search,Java,Lucene,Spatial,Hibernate Search,好的,我已经重新措辞了这个问题,因为我已经取得了一些进展 嗨 最后一天我一直在四处搜索(很糟糕),试图找到一些关于如何在我的应用程序中使用Lucene Spatial的帮助 我使用的是GWT,所以我希望在GWT尝试序列化客户端上的所有内容时,不要让客户端使用org.apache.*包。(使本教程变得不那么有用:[url]http://java.dzone.com/articles/spatial-search-hibernate?utm_source=feedburner&utm_medium=

好的,我已经重新措辞了这个问题,因为我已经取得了一些进展

最后一天我一直在四处搜索(很糟糕),试图找到一些关于如何在我的应用程序中使用Lucene Spatial的帮助

我使用的是GWT,所以我希望在GWT尝试序列化客户端上的所有内容时,不要让客户端使用org.apache.*包。(使本教程变得不那么有用:[url]http://java.dzone.com/articles/spatial-search-hibernate?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+javalobby/frontpage+(javalobby+/+Java+专区)[/url])

基本上,我有一个地址对象,它有一个字段“latitude”和一个字段“longitude”,我想对它进行距离搜索,lucene spatial是正确的方法还是我应该用另一种方法进行更多的研究

到目前为止,我必须:-

[code]DistanceQueryBuilder dq=新距离QueryBuilder(新双精度(点[1]),新双精度(点[0]),10d, “活动位置名称纬度”、“活动位置名称经度”,CartesianTierPlotter.DEFALT\u字段前缀,true)

但我不明白“CartesianTierPlotter.DEFALT\u FIELD\u PREFIX”实际上是什么意思,因此我的结果集返回为空

干杯,
Rob

我目前正在开发一个使用Lucene/Hibernate搜索但不使用Lucene spatial的GWT应用程序


您遇到的问题是否与Lucene spatial的使用有关?如果没有,那么我可以提供帮助,因为我在我们的GWT应用程序中设置了所有Lucene/Hibernate搜索内容,它就像一个符咒一样工作(换句话说,我在一个基于GWT的应用程序中使用org.apache.Lucene中的类)。

我集成了一些简单的搜索机制,它们很棒,这是我目前正在进行的距离搜索(因此我转向了spatial),但我并不真正理解它,也很难找到教程。不过我找到了这个指南[link],但第二段代码需要org.apache.spatial中的模块作为客户端,这意味着GWT想要序列化它。除非我只是个傻瓜……:)我觉得很奇怪,你需要任何lucene客户端的东西。我对此深表怀疑。当您提到“第二个代码块”时,您是指包含@FieldBridge(impl=CartesianTierFieldBridgeImpl.class)的代码块吗?这绝对是服务器端的。事实上,除非我很愚蠢,否则本教程中的所有代码似乎都是服务器端的。这样做的方式应该是更新模型并创建字段桥(所有服务器端),然后客户端应该只发送查询项(就像可能的字符串一样)发送到服务器,然后服务器运行距离搜索并将结果发送到客户端。客户端根本不应该知道查询是如何运行的,也就是说,它根本不知道Lucene/Hibernate搜索是否存在。我想可能是因为注释位于client.domain.address对象上,我认为您必须在该对象上添加@FieldBridge(impl=CartesianTierFieldBridgeImpl.class)。我会在一段时间内玩一玩,然后再试一次,如果我有任何乐趣,请告诉你。感谢您的快速回复:)您能给我一些关于如何将GWT与lucene和db集成的建议吗?我不确定是否应该将索引放在db或文件系统中?我没有使用hibernate,但我愿意使用它。
            FullTextSession fullTextSession = Search.getFullTextSession(session);


            org.hibernate.Query fullTextQuery = fullTextSession.createFullTextQuery( new ConstantScoreQuery(dq.getFilter()) );[/code]