我在resource_show
中使用CKAN 2.7.3 API docs从特定资源中获取元数据。在我的tracking_summary
表中,我有一些跟踪数大于0的资源。但是,当我使用resource_show
和{'include_tracking': True}
时,它显示recent
和total
都是0。
我在tracking_summary
表中的资源记录如下:
url | running_total | recent_views
-----------------------------------------------------------------------------------------------------------------+---------------+--------------
/dataset/d5cd38f4-03df-450e-9eb8-4967bc9741da/resource/844625fb-80a9-445c-85e7-5be8f10ec57b/download/test.csv | 1 | 1
我证实我已经运行了paster tracking update
和paster search-index rebuild
的命令。我不知道我现在缺少什么。
我发现了原因。如果我们查看存储在url
表中的tracking_summary
,它不包含http模式和域:http://example.ckan.com
。但是,如果我们从resource
表查询资源,url
将包含完整的http url。此外,当您尝试在应用程序中使用resource_show
调用{'include_tracking': True}
API时,get_for_resource(cls, url)
模型中的Tracking
将引用完整的url
而不是部分get_for_resource
。因此,如果我们存储部分一个,data = obj.filter_by(url=url).order_by(text('tracking_date desc')).first()
将在tracking_summary
行失败。因此,当我们在http://example.ckan.com/dataset/<package_id>/resource/<resource_id>/<file_name>
中保存资源网址时,我们应该存储完整的网址,例如:qazxswpoi。