【发布时间】:2019-04-02 09:44:02
【问题描述】:
在 solr cloud 中是否有任何方法可以保留一个集合的数据,以便仅触发对该集合的所有索引和搜索查询。我在 solr join 查询中遇到问题。 假设我有一个文件,
{
"form_object_id":"a5ec120cd61e41a2a8f05b01edbb8a89",
"app_id":2400,
"id":"formobj_a5ec120cd61e41a2a8f05b01edbb8a89_account_1704",
"account_id":1704,
"location_gps_value":"[]",
"title":"Mumbai",
"formobject_created_at":"2019-03-31T09:28:40Z",
"formobject_id":"a5ec120cd61e41a2a8f05b01edbb8a89",
"Region_2_name":["Maharashtra"],
"Region_2":["a478ce4bcd7c441c8534849631bebaf8"],
}
In this document i have one field "Region_2" which contains one id "a478ce4bcd7c441c8534849631bebaf8" & this id is present in 208 other solr documents like,
{
"form_id":26825,
"form_object_id":"a478ce4bcd7c441c8534849631bebaf8",
"title":"Maharashtra",
"location.lat":0.0,
"location.long":0.0,
"created_date":"2019-03-31T09:27:55Z",
"form_name":"Region",
"type":"assetformobject",
"id":"formobj_a478ce4bcd7c441c8534849631bebaf8_account_1704",
}
这里的form_object_id与之前文档中的“Region_2”字段相同。 当我加入时,
{!join+from=Region_2+to=form_object_id}title:Mumbai
这个查询应该返回 208 个文档,但它只返回 51 个,但是当我在单核中启动 solr 时,相同的查询返回所有 208 个结果。 我认为这可能是因为 solr 将文档分布在多个分片上。 有没有办法在 solr cloud 中做到这一点?
【问题讨论】:
-
据我所知,文件必须存在于同一台服务器上才能成功加入。您可以使用Document Routing 确保相关文档最终位于相同的分片上。看看有没有帮助。