从 wikidata 网站获取搜索结果,但不是 API
Getting search results from wikidata website, but not API
我正在试用维基数据 API,但在搜索查询 "Jas 39 C Gripen" 时遇到了一些问题。它 returns 在 wikidata 网站上的结果,但如果我使用 API.
在维基数据网站上,我得到了查询的两个搜索结果
https://www.wikidata.org/w/index.php?search=Jas+39+C+Gripen&title=Special:Search&fulltext=1
使用 API 的相同查询,没有 return 结果
我是否遗漏了某些参数或使用了错误的参数?对于许多其他查询,我从 API.
获得结果
原因好像是英文标签是JAS 39C Gripen。通过从查询中删除一个 space,您将获得所需的结果:
似乎本地维基数据搜索在解释用户条目时应用了一些 "fuzzy logic"。在您的例子中,它显示了两个结果,尽管第一个中缺少字符 C
。
回到 API 和您选择的操作 ,您可以使用 Jas 39 Gripen
作为搜索词(将显示一个结果)作为以及 Jas 39C Gripen
(也将显示一个结果)。但似乎不能使用 Jas 39 C Gripen
(注意 9
和 C
之间的 space 字符)。
换句话说,
https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&type=item&continue=0&search=Jas%2039%20Gripen
https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&type=item&continue=0&search=Jas%2039C%20Gripen
两者都有效,但是
https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&type=item&continue=0&search=Jas%2039%20C%20Gripen
不会。
我进一步调查了这个问题,最终找到了解决方案。试试这个:
https://www.wikidata.org/w/api.php?action=query&list=search&format=json&srsearch=Jas+39+C+Gripen
操作 query
允许在搜索词中包含一些 "fuzziness"。请参阅 API 文档以获取更多详细信息。简而言之,此操作执行全文搜索(您显然想要)并允许 nearmatch
搜索类型。
我正在试用维基数据 API,但在搜索查询 "Jas 39 C Gripen" 时遇到了一些问题。它 returns 在 wikidata 网站上的结果,但如果我使用 API.
在维基数据网站上,我得到了查询的两个搜索结果
https://www.wikidata.org/w/index.php?search=Jas+39+C+Gripen&title=Special:Search&fulltext=1
使用 API 的相同查询,没有 return 结果
我是否遗漏了某些参数或使用了错误的参数?对于许多其他查询,我从 API.
获得结果原因好像是英文标签是JAS 39C Gripen。通过从查询中删除一个 space,您将获得所需的结果:
似乎本地维基数据搜索在解释用户条目时应用了一些 "fuzzy logic"。在您的例子中,它显示了两个结果,尽管第一个中缺少字符 C
。
回到 API 和您选择的操作 ,您可以使用 Jas 39 Gripen
作为搜索词(将显示一个结果)作为以及 Jas 39C Gripen
(也将显示一个结果)。但似乎不能使用 Jas 39 C Gripen
(注意 9
和 C
之间的 space 字符)。
换句话说,
https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&type=item&continue=0&search=Jas%2039%20Gripen
https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&type=item&continue=0&search=Jas%2039C%20Gripen
两者都有效,但是
https://www.wikidata.org/w/api.php?action=wbsearchentities&format=json&language=en&type=item&continue=0&search=Jas%2039%20C%20Gripen
不会。
我进一步调查了这个问题,最终找到了解决方案。试试这个:
https://www.wikidata.org/w/api.php?action=query&list=search&format=json&srsearch=Jas+39+C+Gripen
操作 query
允许在搜索词中包含一些 "fuzziness"。请参阅 API 文档以获取更多详细信息。简而言之,此操作执行全文搜索(您显然想要)并允许 nearmatch
搜索类型。