如何使用CKAN API通过多个标签搜索数据集



我使用的是带有API版本"CKAN_version":"2.5.x"的CKAN门户我有几个标签,我需要使用API发送这些标签并且我需要返回包或资源的匹配条目的列表。

可以使用do-usepackage_search端点来搜索具有所有给定标记的包,但它作为"AND"运算符工作,我需要一个"OR"运算符。例如:

  • http://demo.ckan.org/api/3/action/package_search?fq=tags:contabilidade-社会<--退回11个包含"社交可控制性"的包裹
  • http://demo.ckan.org/api/3/action/package_search?fq=tags:contabilidade-社会+政府<--返回11个包含"contabilidade social"one_answers"governo"的包
  • http://demo.ckan.org/api/3/action/package_search?fq=tags:contabilidade-社会+政府+营养不良<--返回0个包含"contabilidade social"、"governor"one_answers"enogastronomia"的包。出于我的目的,它应该返回带有"OR"运算符的匹配项

PS:我使用了前10个标签(http://demo.ckan.org/api/action/package_search?facet.field=[%22tags%22]&facet.limit=10&行=0)。

我认为这与SOLR和postgresql索引有关。有办法做到这一点吗?如果没有,是否可以扩展或创建一个方面,使这种搜索成为可能?

尝试以下语法:

fq=tags:(tag1 OR tag2 OR tag3)

例如:

http://demo.ckan.org/api/3/action/package_search?fq=tags:(可控制的社会%20OR%20governo%20OR+20enogastronomia)

如果不使用API,则输入用|分隔的搜索词,并且似乎没有空格。例如,蓝色|红色将返回带有蓝色或红色的数据集。例如,如果其中一个词中有空格,则深蓝色|红色似乎也有效。

最新更新