1

私のドキュメントには次のものがあります。

<int name="groupCount">4</int>
<arr name="groupId">
    <str>1001</str>
    <str>1002</str>
    <str>1003</str>
    <str>1009</str>
</arr>

私のクエリでは、ユーザーが少なくともドキュメントが属するすべてのグループに属しているすべてのドキュメントを取得したいと考えています。

したがって、グループを持つユーザー:

1001
1002
1003
1009
1010

ドキュメントで指定されたすべてのグループにあるため、上記のドキュメントが表示されます。

グループを持つユーザー:

1001    
1002
1003
1010

グループ 1009 が欠落しているため、そうではありません。

これを行うために、ドキュメントが属するグループの数を示す groupCount フィールドをドキュメントに追加しました。ユーザー グループとドキュメント グループの一致数を確認し、それを groupCount フィールドと比較できるようにする計画です。それらが同じである場合、ユーザーはドキュメントを見ることができます。

これを行うには、ヒット数から groupCount を差し引いてゼロにすることを望んでいました-ユーザーがすべてのグループに属している場合は0になります-ユーザーはドキュメントを見ることができます。

次のクエリがあります。

fq={!frange l= 0 u=0}sub(groupCount,sum(termfreq(groupId,1001),termfreq(groupId,1002),termfreq(groupId,1003),termfreq(groupId,1009)))

ご覧のとおり、上記のドキュメントでは、4 つのヒットがあるため、すべての termfreq クエリの合計が 4 を返すと予想されます。sub(groupId, 4) は 0 を返す必要があります

{frange l=0 u=0} 0

その書類を返すべきです。

しかし、それは機能していません。

私はこれについて間違った方法で進んでいますか?

4

1 に答える 1