2011-02-10 4 views
4

Sharepoint 2010でTaxonomyフィルタリングで奇妙なものがありましたが、3つのサーバーすべてで複製できます。ここでSharepoint 2010 Taxonomyが正しくフィルタリングされていない

はシナリオが出て再生する方法である:

  1. は、多くの子ノード(約4500)とフル装備名辞組を持っています。
  2. 1つのカスタムリストを追加します.2つのフィールド(タイトルとManaged Metadataフィールド、これはtermSetにリンクしています) - これはすべてGUIを使用して行われます。
  3. メタデータフィールドを追加する用語を選択します(ツリー構造の深さは約4ノードです)
  4. この用語に基づいてリストのフィルタリングをテストします - 魅力のように働く。

ここで、別のリストにアイテムを追加するインポートジョブを実行します。この2番目のリストには、termSetを指すマネージメタデータフィールドもあります。

  1. 1000個の項目を追加しても問題ありません。魅力のように動作します
  2. 別の1000を追加しても問題ありません。

リスト1フィルタリングは動作しません:実行が終了した後、私は今、次のシナリオに残ってるので

  • はどこか2000年頃と4500個のアイテムの何か、間違っていました。リスト2のフィルタリングは、間違いなく動作しません。

    正確には何が起こりますか。トップレベルの用語を選択し、すべてのサブ項目を含める必要があります。これは、用語セットの用語を使用するリスト項目の一括挿入の前にこれを完全に行いました。挿入後、トップレベルの用語を選択すると、空のセットが戻され、子孫を含むボタンは表示されません。

    私は気付いたようにフィルタリングとは大いに関係がある、この隠しリストを調べています。フィルタリングは主にこれをチェックします(どのように/なぜか)。

    他にもこの問題がありましたか?これに関するドキュメンテーションの唯一のソースは、マイクロソフトのSharepoint Evangelical Blogs(マーケティング)であり、これがなぜ機能しないのかの詳細な説明はありません。

    助けてください。

  • 答えて

    5

    ルール番号1:Sharepointを扱うときは、それが動作することを信じてはいけません。

    if (fRecursive && (numArray.Length > 300)) 
        { 
         int[] numArray2 = numArray; 
         object[] data = new object[] { termSetId.ToString(), termId.ToString(), numArray2.Length.ToString(CultureInfo.InvariantCulture) }; 
         ULS.SendTraceTag(0x66367766, ULSCat.msoulscat_DLC_DM, ULSTraceLevel.Medium, "Disable recursive term clause: Too many descendent IDs for term. Termset[{0}]Term[{1}] Descendent ID count[{2}]", data); 
         numArray = TaxonomyField.GetWssIdsOfTerm(SPContext.Current.Site, termStoreId, termSetId, termId, false, 500); 
         MetadataNavigationContext current = MetadataNavigationContext.Current; 
         if (current != null) 
         { 
          current.ForceTreeDescendentsOff(); 
         } 
        } 
    (numArray.Length > 300) 
    

    Sharepoint.Taxonomyを反映して、current.ForceTreeDescendentsOff()に注目してください。

    タクソノミーフィルタから300を超えるレコードを返す必要がある場合は、これを行うことができないようです。エンタープライズソリューションにはかなり良い。

    +0

    SP2013と2016で改善されているかどうか分かりますか? – Mark

    関連する問題