3

我一直在试图找出一种在 solr 中使用层次结构实现刻面的方法,但不知道如何在我的情况下做到这一点。我已经阅读了几篇关于在 solr 中进行层次结构的文章以及补丁 64 和 792 中的解决方案。我遇到的主要问题是我有可以属于层次结构的多个分支的实体。我的数据的当前形式是一个用户文档,其中包含国家、州和城市的 MVA。

以地理层次结构为例,人们可以将其服务列出到城市级别。一个人可以服务于整个阿拉巴马州,但只能服务于佐治亚州的某些城镇。现在,州级的分面计数计算了为阿拉巴马州为 1 和乔治亚州为 1 的地区服务的不同个人,当扩展到城市级别时,每个城市都有一个计数(换句话说,城市的总和)计数不一定等于状态计数,因为计数不是互斥的)。

美国(1)
格鲁吉亚(1)
亚特兰大(1)
哥伦布(0)
雅典(0)
阿拉巴马州(1)
莫比尔(1)
伯明翰(1)
亨茨维尔(1)

我被挂断的部分是在面对城市时,我无法知道他们属于哪个州,因为用户在阿拉巴马州和乔治亚州都有列出,我无法找到将属性与每个相关联的方法其他。如果 solr-64 支持同一文档的多个分支,例如 US/Alabama/Mobile/ 和 US/Georgia/Atlanta/,它可能会起作用。到目前为止,我还无法让它与夜间构建一起编译,所以我有点卡住了。

有没有人有更好的方法来做到这一点?

4

4 回答 4

2
于 2011-01-12T18:24:32.277 回答
1

我对您的问题不太熟悉,但似乎您需要按城市,州进行分组。

查看 SOLR 中称为字段折叠的分组功能 (http://wiki.apache.org/solr/FieldCollapsing)。

另外,请查看 bobo-browse。具体来说,compositeFacetHandlers http://code.google.com/p/bobo-browse/wiki/CompositeFacetHandlers。bobo-browse 可以集成到 SOLR (http://code.google.com/p/bobo-browse/wiki/SolrIntegration)

于 2011-01-11T23:02:42.863 回答
1

查看 Pivot(即决策树)分面:http ://wiki.apache.org/solr/SimpleFacetParameters#Pivot_.28ie_Decision_Tree.29_Faceting

Solr 4.0 支持它

于 2011-01-12T13:00:17.100 回答
0

假设您在索引中的文档代表一个服务....

对于城市,使用某种分隔符创建一个字段,该字段是与城市连接的状态。该字段不必向用户显示,它可以是您存储但不索引的字段的补充,该字段是城市的真实名称。

例如,您可以有一个 city_facet 字段,其值为:

  • “俄亥俄州 - 迈阿密”
  • “佛罗里达 - 迈阿密”

您可能想选择一个更安全的分隔符。我想连字符可能是潜在的冲突。

于 2011-01-11T22:47:30.263 回答