首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否可以在geodist中使用multiValued字段

是否可以在geodist中使用multiValued字段
EN

Stack Overflow用户
提问于 2013-03-08 23:46:10
回答 1查看 565关注 0票数 2

我在schema.xml (Solr4.1)中有以下字段定义:

代码语言:javascript
运行
复制
<field name="locationCoordinates" type="location_rpt" indexed="true" stored="true" multiValued="true" />

现在,我想基本上执行以下查询:

对坐标进行过滤,无论它们位于某个地理点的给定距离内(此部分已起作用),并将距离返回到最近的点。

或者在现实生活中:

我们有文章。每个文章都可以在多个商店购买(只保存为地理位置) (N:N,但我们只有Solr建模的文章)。现在我想查询在给定点范围内的文章,如果它们也返回到该点的距离。

我如何使用Solr-Queries来实现这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-11 03:27:02

如果我没理解错的话,你需要的是一个地理排序,对吧?

要实现同样的效果,您必须使用Lucene中的自定义排序功能。

如果按分数、id、字段排序还不够,Lucene允许您通过提供自己的FieldComparatorSource抽象基类的子类来实现自定义排序机制。

步骤:

1) Sort对象在实例化过程中接受FieldComparatorSource类型实例。

2)扩展FieldComparatorSource

3)您必须在setNextReader()的FieldComparatorSource中使用FieldCache加载坐标。

4)对于每个文档,您可以计算与原点的距离,并返回{-1,0,1}中的一个

实际上,整个示例在下面的链接中给出。但你必须注册免费试用。

Link to Custom sort in the book Lucene in Action 2

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15297835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档