1

一連の RSS フィードを組み合わせて日付順に並べ替える YQL クエリがあります。うまく機能していますが、結果をページ付けできるようにしたいと思います。

これが私のクエリです:

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='true')

問題は、yql が並べ替えフィルターの前に LIMIT と OFFSET を実行することです。したがって、LIMIT 5 がある場合、リスト内の最初の RSS フィードの最初の 5 項目だけになります。結合されたすべてのフィードの最初の 5 項目ではありません。

すべての結果を並べ替えるすべてのクエリを取得し、結果を制限するクエリを呼び出すことができるように、クエリをチェーンする方法はありますか。

助けてくれてありがとう。

4

2 に答える 2

1

truncate(count=5) を使用して、フィルタリングされたフィードの最初の 5 項目を取得します。

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='true') | truncate(count=5)

または、逆ソートの tail() メソッド (上に投稿) も同様に機能します。

http://developer.yahoo.com/yql/guide/sorting.htmlを参照してください。

于 2011-01-27T04:22:08.850 に答える
0

を使用してtail()、さらにsort()他の方向に使用するのはどうですか?

このようなもの:

select channel.item.title, channel.item.link, channel.item.pubDate, channel.item.description(0) from xml where url in(... urls go here ...) | unique(field='channel.item.link') | sort(field='channel.item.pubDate', descending='false') | tail(count=5)

私はこれを試したことがなく、どのソート順が必要かわかりませんが、確実に使用できますtail()。明らかに同等のhead()機能はありませんので、並べ替え後に最新のアイテムが最後であることを確認してください。

詳細については、 http://developer.yahoo.com/yql/guide/sorting.htmlを参照してください。

于 2011-01-12T22:27:11.157 に答える