YQL RSS提要规范化器中的错误限制和处理

YQL RSS提要规范化器中的错误限制和处理,rss,yql,Rss,Yql,我使用YQL一次检索多个RSS提要(频道),使用以下查询: SELECT * FROM feednormalizer WHERE output="rss_2.0" AND url in ("http://rss.cnn.com/rss/edition.rss", "http://bad.url.com/nothing", "http://rss.cnn.com/rss/edition_space.rss") 所以我有两个问题: 如何将每个提要限制

我使用YQL一次检索多个RSS提要(频道),使用以下查询:

SELECT * FROM feednormalizer
WHERE output="rss_2.0"
AND url in ("http://rss.cnn.com/rss/edition.rss",
            "http://bad.url.com/nothing",
            "http://rss.cnn.com/rss/edition_space.rss")
所以我有两个问题:

  • 如何将每个提要限制为一定数量的项目?(例如,我想从每个频道获得前3项)
  • 请注意,第二个URL无效(不是真正RSS的URL)。在这种情况下,YQL结果返回2个有效通道和一个错误,但没有指示哪些URL有效,哪些失败。
    换句话说,对于每个结果提要,都没有指示它是从哪个URL到达的。
    关于如何识别每个频道有什么想法吗
    谢谢第一个问题:

    首先想到的是使用
    query.multi

    SELECT rss.channel.item FROM query.multi WHERE queries="
       SELECT channel.item FROM feednormalizer WHERE output='rss_2.0' AND url = 'http://rss.cnn.com/rss/edition.rss' LIMIT 3; 
       SELECT channel.item FROM feednormalizer WHERE output='rss_2.0' AND url = 'http://rss.cnn.com/rss/edition_space.rss' LIMIT 3;"
    
    这不是最优雅的方式,但它很有效

    第二个问题:

    我认为这是不可能的。由于YQL的
    WHERE x IN()…
    语法不是真正的SQL连接,因此无法在投影中选择内部子查询的部分,这是您的案例所需要的


    如果有人在这一点上证明我错了,我会很高兴,因为我自己也需要几次,而且总是要通过编程解决:)

    第一个问题:

    首先想到的是使用
    query.multi

    SELECT rss.channel.item FROM query.multi WHERE queries="
       SELECT channel.item FROM feednormalizer WHERE output='rss_2.0' AND url = 'http://rss.cnn.com/rss/edition.rss' LIMIT 3; 
       SELECT channel.item FROM feednormalizer WHERE output='rss_2.0' AND url = 'http://rss.cnn.com/rss/edition_space.rss' LIMIT 3;"
    
    这不是最优雅的方式,但它很有效

    第二个问题:

    我认为这是不可能的。由于YQL的
    WHERE x IN()…
    语法不是真正的SQL连接,因此无法在投影中选择内部子查询的部分,这是您的案例所需要的


    如果有人在这一点上证明我错了,我会很高兴,因为我自己也需要几次,而且总是需要通过编程来解决:)

    谢谢。第一个答案很有帮助。但是结果的格式有点混乱,您需要单独请求通道的数据。但它给了我一个解决第二个问题的想法:你可以使用多查询,如果一个提要无效,你可以通过它在结果中的索引知道它是哪一个。也不是最优雅的-但至少它能工作:)无论如何-再次感谢你的帮助!谢谢第一个答案很有帮助。但是结果的格式有点混乱,您需要单独请求通道的数据。但它给了我一个解决第二个问题的想法:你可以使用多查询,如果一个提要无效,你可以通过它在结果中的索引知道它是哪一个。也不是最优雅的-但至少它能工作:)无论如何-再次感谢你的帮助!