0

次のようなスキーマの例があります。

id:1,date:2012-05-01,parent:p1
id:1,date:2012-05-01,parent:p2
id:1,date:2012-05-01,parent:p3
id:1,date:2012-05-02,parent:p1
id:1,date:2012-05-02,parent:p4

「日付」で範囲クエリを実行し、毎日発生した新しい/一意の親の数を知りたいと思います。言い換えれば、時間の経過とともに追加された新しい親の数を確認したいと思います. 指定されたデータの出力は次のようになります。

2012-04-31:0 (no parents existed an that time)
2012-05-01:3 (because three new parents occured at 2012-05-01: p1,p2,p3) 
2012-05-02:4 (which is 3 parents from 2012-05-01 and 1 new unique parent p4 occured at 2012-05-02 which gives a total of 4)
2012-05-03:4 (no new parent was added this day...)

この種のクエリはSOLRでも可能ですか?

4

1 に答える 1

2

はい、あなたの質問を正しく理解していれば、これはかなり簡単なはずです。のようなものを追加する

fq=date:[2012-05-05T00:00:00Z TO 2012-05-06T00:00:00Z]

クエリに追加すると、5 月 5 日から 5 月 6 日までの日付のすべてのドキュメントが取得されます。日付は必ず ISO 8601 形式で保存してください。

詳細については、ここで日付の例を確認してください: http://wiki.apache.org/solr/SolrQuerySyntax

編集:あなたの質問をよりよく理解しました-あなたは「グループの崩壊」を探しています。

試す

&group=true&group.field=parent&group.limit=1

返されたドキュメントの数を数えます。

各日付の値が必要な場合は、日付でファセットします。

&facet=true&facet.field=date
于 2012-05-15T15:50:50.527 に答える