我有一个Solr索引,其中包含对象(实际上,WW1军人的历史图片的记录以及口述历史音频记录),它们都有对已命名代理的引用。索引还包含所有代理的简单记录,而对象记录包含这些代理的标识(但请注意代理记录不包含对象标识)。如何查找所有具有相匹配的元数据值的文档Solr
典型对象记录摘录:
"agentReference": [
"agent-571916"
],
我怕我是相当新的Solr的,所以我不知道这是一个简单的(确实是明显的)问题,或更复杂。我想得到的是具有多个与它们关联的对象的代理ID列表以及这些对象的ID。因此,像...
剂-571916: 对象12345 对象23456 对象98765
道歉,如果这是一个无知的问题。我可以编写一个脚本来遍历所有代理ID并调用一个查询来为每个代理返回对象,但是我仍然必须将它们与唯一计数进行匹配,并且对于有问题的数据集,它可能大约有16,000个代理。
编辑:我应该补充一点,我当然可以通过agentReference构面并应用facet.mincount = 2,这样我就可以关闭它,但它会根据我需要的每个代理获取对象ID。
<int name="agent-2876">5</int>
<int name="agent-443281">5</int>
<int name="agent-239379">4</int>
<int name="agent-257708">4</int>
<int name="agent-26269">4</int>
<int name="agent-279277">4</int>
可悲的是端点当前仍在运行的Solr 4.10.4但工作正在进行升级。一旦完成,我肯定会测试它,因为它看起来应该是答案。谢谢 – jamesinealing
4.10支持数据透视,这是与旧语法相同的功能(如此处所用)。类似于'facet = true&facet.pivot.mincount = 1&facet.pivot = agentReference,objectId'可以工作,尽管对于返回格式有些冗长。 – MatsLindh