Stackexchange 中的高级过滤 Python API

Advance filtering in Stackexchange Python API

Stackexchange Python API 是否提供高级过滤支持?

例如:

  1. Return 标签 python 和 javascript 下超过 50 个赞的所有问题。
  2. Return 所有在 "title" 或 "content".
  3. 中有匹配子字符串的问题
  4. Include/Exclude 过滤不同的属性。

非常感谢参考官方文档。

参见 the official API docs, the API does not well support complex queries directly, but the /search/advanced route 确实传递了网站搜索功能的大部分功能。

所以:

  1. "Return all the questions under tag python and javascript with more than 50 upvotes."

    1. 使用the /search/advanced route.
    2. tagged参数中传递python;javascript
    3. q参数中传递score:50
    4. Live example.
    5. 在那个库中,等效的调用应该是这样的:

      .fetch('search/advanced', tagged='python;javascript', q='score:50')
      
    6. 对于那个特定的查询,这可能也有效:

      .fetch('questions', tagged='python;javascript', min='50', sort='votes')
      


  2. "Return all the questions that have some substring matched in "title" 或 "content"."

    1. 将单词放入 q 参数中。例如:
      /search/advanced?q=flask score:50&tagged=javascript
    2. 将此与使用 AND 逻辑的 title 参数的使用进行比较:
      /search/advanced?q=score:50&title=flask&tagged=javascript


  3. "Include/Exclude 过滤 不同的属性。"

    1. 这很含糊。如果你的意思是你想排除有术语的问题,那么...
    2. /search/advanced 提供 nottagged 参数。
    3. q 参数将采用一些 - 术语,就像站点搜索一样。例如
      /search/advanced?q=-flask score:50&tagged=python;javascript

备注:

  1. q参数接受大部分问题相关parameters of the site's web search.
  2. OP 声明他正在使用 this library,它广泛支持 Stack Exchange API(版本 2.2)。
  3. the term "filtering"的习惯用法。