ちょっと面倒で、おそらくサポートされていませんが、高度な検索結果に含めることができるように UniqueId をクロールされたプロパティ/マップされたプロパティにするために必要なことは次のとおりです...
最初に、検索するリストの UniqueId フィールドを内部的に変更して、非表示にせず、クローラーによってインデックス付けできるようにする必要があります。サンプル オブジェクト モデル コードを次に示します。
// this is the identifier for UniqueId
Guid g = new Guid("4b7403de8d9443e89f0f137a3e298126");
// we will need these for reflection in a bit
BindingFlags bf = BindingFlags.NonPublic | BindingFlags.Instance;
using (SPSite s = new SPSite("http://SharePoint/")) {
// grab the list that contains what you want indexed
// and the UniqueId field from that list
SPList l = s.RootWeb.Lists["Your Custom List/Library"];
SPField f = l.Fields[g];
// We need to call the private method SetFieldBoolValue
// to allow us to change the Hidden property to false
MethodInfo mi = f.GetType().GetMethod("SetFieldBoolValue", bf);
mi.Invoke(f, new object[] { "CanToggleHidden", true });
f.Hidden = false;
f.Update();
}
そのコードを (および対象とするすべてのリスト/ライブラリで) 実行したら、Shared Services Search Administration で次の 3 つの手順を実行する必要があります。
2 回目のフル クロールが完了すると、UniqueId を含むインデックスにデータが入力されているはずです。検索コア結果を変更することにより、高度な検索でそれを公開できます。
- Web パーツを開いて編集する
- 「結果クエリ オプション」を展開します。
- 選択した列の XML を変更して、UniqueId の参照を含めます。
- データ ビュー プロパティの XSL を変更して、UniqueId を出力するステートメントを含めます。
- [OK] をクリックし、必要に応じてページを公開します