【问题标题】:How to get a list of questions from stackoverflow API based on search query?如何根据搜索查询从 stackoverflow API 获取问题列表?
【发布时间】:2021-11-26 16:12:18
【问题描述】:

我有兴趣根据标签或搜索查询获取问题列表。我给你举个例子。

所以如果我使用搜索关键字作为“ipv4”,它应该给我一个与 ipv4 相关的问题的大列表。我要做的就是将问题(标题)作为列表或数组获取,以便我可以对其进行一些处理。

【问题讨论】:

  • 欢迎来到 Stack Overflow。这是一个非常广泛的问题。听起来您正在询问有关如何构造代码的各个方面的详细信息,甚至可能是如何编程,甚至没有指定您可能使用哪种语言。我怀疑你会得到很多或任何完整的答案。见How to Ask A Good QuestionOn Topic

标签: json search stackexchange-api


【解决方案1】:

您可以使用questions/ 路由获取此信息。在此调用中,您会将您感兴趣的标签传递给tagged 参数(以分号(;)分隔)。

要将问题返回给带有一组标签的问题,请使用带有分号分隔的标签列表的 tagged 参数。这是一个 and 约束,传递 tagged=c;java 将只返回带有两个标签的问题。因此,传递超过 5 个标签将始终返回零结果。

对于您的具体问题(搜索ipv4),您可以以此为起点:

http://api.stackexchange.com/docs/questions#order=desc&sort=activity&tagged=ipv4&filter=!BHMIbze0EPheMk572h0ktETsgnphhU&site=stackoverflow&run=true

filter 是可选的,但我已经删除了一些默认字段以提供一个较小的示例。上面的链接返回的条目如下所示:

"items": [
{
  "tags": [
    "ruby-on-rails",
    "ipv4",
    "geokit"
  ],
  "link": "http://stackoverflow.com/questions/29460004/rails-geokit-incorrectly-converting-ipv4-address-to-latitude-and-longitude",
  "title": "Rails: Geokit incorrectly converting IPv4 address to latitude and longitude"
},
{
  "tags": [
    "networking",
    "ip",
    "ipv4",
    "maxmind",
    "cidr"
  ],
  "link": "http://stackoverflow.com/questions/28358851/merging-of-multiple-ipv4-address-blocks-on-the-basis-of-their-country-region",
  "title": "merging of multiple IPv4 address blocks on the basis of their country region"
},
...
}

【讨论】:

  • 如何从 api 获取响应。是否需要设置任何配置,如身份验证?
  • @Andy 你展示了如何按标签搜索,但是如果我想按标题字段搜索呢?我一直在阅读堆栈交换 API,但找不到这样做的方法
  • 嘿,@Andy。如何搜索没有标签的问题?
【解决方案2】:

Stackexchange 提供https://api.stackexchange.com/docs/advanced-search 端点。

例如,继续 https://api.stackexchange.com/search/advanced?site=stackoverflow.com&q=firebase 会给你这样的回报:

这是最简单的示例,但正如您将在文档中找到的那样,可以执行搜索的参数很多。其中一些是:

  • accepted - true 只返回接受了答案的问题,false 只返回那些没有接受的答案。省略以忽略约束。
  • answers - 返回问题的最少答案数。
  • 正文 - 必须出现在返回问题正文中的文本。
  • tagged - 以分号分隔的标签列表,其中至少有一个将出现在所有返回的问题中。
  • 标题 - 必须出现在返回问题标题中的文本。
  • user - 必须拥有所返回问题的用户的 ID。
  • ...

希望这会有所帮助!

干杯!

【讨论】:

    【解决方案3】:

    我一直在努力解决这个关于如何从 API 获得相关结果的问题,因为即使在给出相关问题之后它返回的答案也不相关,然后我将排序选项从 'activity' 翻转为 'relevance' 瞧,它的工作原理与堆栈溢出搜索系统类似,并返回相同的文章。

    使用advanced search 选项并将您的问题放在'q' 参数中,并从'activity' 更改'sort' 参数> 到“相关性”。要根据标签进行搜索,请将标签放在 'tagged' 参数中,每个标签用分号分隔。

    如何获得称号: 现在在 JSON 响应中,所有匹配的对象都在 'items' 对象的数组中。数组中的每个项目都是一个问题,每个项目都有一个 'title' 参数,其中包含问题的标题。

    示例: 如果我要搜索问题'如何在 HTML 中居中​​ div,链接将是这样的 https://api.stackexchange.com/2.3/search/advanced?order=desc&sort=relevance&q=how%20to%20center%20a%20div%20in%20html&site=stackoverflow

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-17
      • 1970-01-01
      • 2012-08-24
      • 1970-01-01
      • 2013-09-22
      • 2014-04-23
      • 1970-01-01
      相关资源
      最近更新 更多