動的ランクをチューニングする (FAST Search Server 2010 for SharePoint)
適用先: FAST Search Server 2010
トピックの最終更新日: 2011-03-28
動的ランクはクエリ時に計算されます。動的ランク スコアは、入力クエリ語とランク構成の組み合わせで計算されます。FAST Search Server 2010 for SharePoint では、検索フロントエンドによって並べ替え基準として自動的に使用できるようになる、複数のランク構成 (ランク プロファイル) を設定できます。
検索のパフォーマンスを上げるため、動的ランクは複数のレベルを基にして計算されます。ランクの計算に使用されるレベルは、検索語が使用される頻度に依存します。既定のランク プロファイルでは、検索語がインデックスの項目の 20% より多くで発見されると、次のレベルへのドリルが実行されます。20% という値は、StopWordThreshold = 2000000 と定義済みの値 10000000 から計算されます。
動的ランクのチューニングの例が含まれるシナリオを次に示します。
分単位の高い鮮度加重と品質加重なし
アンカー テキストまたは関連付けられたクエリでのヒット数の昇格ポイントを変更する
タイトルでのヒット数および近接性に対する影響に対して昇格ポイントを増やす
種類に基づいてアイテムを昇格させる
ドリルを使用したランク パフォーマンスの最適化
分単位の高い鮮度加重と品質加重なし
鮮度と品質による昇格の効果を変更する第 1 のステップは、既定のランク プロファイルを修正するのか、または新しいランク プロファイルを作成するのかを決定することです。以下の例では、time という名前の新しいランク プロファイルを作成する方法を示します。この更新を行った後、ユーザーはクエリ時に、鮮度の影響を大きくして並べ替えを行うかどうかを決定できます。ニュース関連の検索では、この新しいプロファイルを既定で適用することにより、検索語に関する最新の記事が常に返されます。
Windows PowerShell ウィンドウを開きます: Microsoft FAST Search Server 2010 for SharePoint。
既定のランク プロファイルをテンプレートとして使用して、新しいランク プロファイルを作成します。
PS C:\> $rp = Get-FASTSearchMetadataRankProfile -Name default PS C:\> $np = New-FASTSearchMetadataRankProfile -Name time -Template $rp
現在の値を確認します。
PS C:\> $np Name : Time isDefault : False RankModelName : Default StopWordThreshold : 2000000 PositionStopWordThreshold : 20000000 QualityWeight : 50 AuthorityWeight : 50 QueryAuthorityWeight : 50 FreshnessWeight : 0 FreshnessResolution : Second FreshnessManagedPropertyReference : Write
Freshnessresolution (使用できる単位は、秒、分、時、日、年です) および加重パラメーターを変更します。
PS C:\> $np.FreshnessResolution = "minute" PS C:\> $np.QualityWeight = 0 PS C:\> $np.FreshnessWeight = 10000 PS C:\> $np.Update()
新しいランク プロファイルを確認します。
PS C:\> $np Name : Time isDefault : False RankModelName : Default StopWordThreshold : 2000000 PositionStopWordThreshold : 20000000 QualityWeight : 0 AuthorityWeight : 50 QueryAuthorityWeight : 50 FreshnessWeight : 10000 FreshnessResolution : Minute FreshnessManagedPropertyReference : Write
アンカー テキストまたは関連付けられたクエリでのヒット数の昇格ポイントを変更する
アンカー テキストと関連付けられたクエリ (クリックスルー) は、重要なランク要因です。ドキュメントのランク付け方法に応じて、アンカー テキストと関連付けられたクエリのどちらか一方または両方の加重を変更できます。
「分単位の高い鮮度加重と品質加重なし」の手順 1. ~ 3. を実行します。
加重を変更します。
検索クリックスルーの場合:
PS C:\> $np.QueryAuthorityWeight = <new value>
アンカー テキストの場合:
PS C:\> $np.AuthorityWeight = <new value>
ランク プロファイルを次のように変更します。
PS C:\> $np.Update()
タイトルでのヒット数および近接性に対する影響に対して昇格ポイントを増やす
人の検索に最適化された並べ替え基準を作成する場合は、タイトルおよび近接性の影響を大きくすることを検討する必要があります。タイトル プロパティに名前が見つかる場合は "タイトル" を、クエリに複数の検索語が含まれる場合は "近接性" を大きくします。どちらも該当する場合は、追加の昇格を適用します。
「分単位の高い鮮度加重と品質加重なし」の手順 1. ~ 3. を実行します。
近接性の影響を大きくします。
PS C:\> $content = $np.GetFullTextIndexRanks()|where-Object -filterscript {$_.FullTextIndexReference.Name -eq "content"} PS C:\> $content.ProximityWeight = 200 PS C:\> $content.Update()
タイトル プロパティがマップされるレベルについての情報を検索します。
PS C:\ > $mp = Get-FASTSearchMetadataManagedProperty -Name title PS C:\ > $mp.GetFullTextIndexMappings()
このレベル情報を
$content
で使用して、タイトルでのヒット数に対する新しい加重を設定します。PS C:\ > $content.SetImportanceLevelWeight(7,200) PS C:\ > $content.Update()
種類に基づいてアイテムを昇格させる
管理プロパティ boost は、動的ランク スコアをチューニングするための簡単で強力な手段です。この機能は、ランク スコアのカスタム チューニングを作成するためのインターフェイスを提供します。たとえば、クロール対象のサイトがあり、重要な情報が通常は特定の種類のアイテム (たとえば、Word 文書) で保持されていることがわかっている場合は、Word からのヒット数を昇格させるのが適切です。これを行うには、CreateManagedPropertyBoostComponent を作成します。
「分単位の高い鮮度加重と品質加重なし」の手順 1. ~ 3. を実行します。
ファイル拡張子管理プロパティを取得します。
PS C:\> $fileext = Get-FASTSearchMetadataManagedProperty -Name fileextension
検索語が Word ファイルで見つかった場合は 1000 ポイントを追加する CreateManagedPropertyBoostComponent をカスタム ランク プロファイルに作成します。
PS C:\> $np.CreateManagedPropertyBoostComponent($fileext, "docx,10000") PS C:\> $np.Update()
ドリルを使用したランク パフォーマンスの最適化
ドリルはストップ ワードしきい値と連携して、フルテキスト インデックスに対するクエリでストップ ワードしきい値に達したときに最も関連性の高いアイテムが返されることを保証します。ドリルを使用すると、対象のフルテキスト インデックス (ドリル レベル) 内でのクエリに対するプロパティの数を減らすことで、結果セットに自動的にドリルダウンできます。
StopWordThreshold の値は、10,000,000 アイテムの参照インデックス サイズに対するものです。StopWordThreshold が 10,000,000 の場合は、インデックスのすべてのアイテムに対してランキングを実行することを意味します。既定値は 2,000,000 で、これはインデックスのアイテムの 20% (StopWordThreshold を 10,000,000 で割った値) より多くで検索語が見つかったときにドリルを実行することを意味します。
ImportanceLevel プロパティをインデックス スキーマで使用して、管理プロパティとフルテキスト インデックスを関連付けます。これは、ドリルに対する関係として、フルテキスト インデックス内での管理プロパティの認識された重要さを表します。大きい ImportanceLevel の値は、そのレベルにドリルするときにその管理プロパティが一致の一部であることを示します。
均一なアイテムのセットからなる小さいインデックスがある場合は、ドリル レベルの設定の変更が必要な場合があります。インデックスが小さいときは、ドリル レベルの設定の変更によるパフォーマンスへの効果は限定的で、この変更を行わないと、低いレベル (本体など) で管理プロパティからランクを取得できない危険があります。
注意
ドリルを制御するには、実際のドリル レベルのパーセンテージを変更するのではなく、StopWordThreshold を変更します。StopWordThreshold は、ドリルのパーセンテージを計算するために 10,000,000 で除算されます。
すべてのものからランクが取得されるようにするには、StopWordThreshold を 10,000,000 に変更します。新しい StopWordThreshold と定義済みの基準値が同じであり、レベル 1 で 100% のランク計算が行われます。
「分単位の高い鮮度加重と品質加重なし」の手順 1. ~ 3. を実行します。
新しい StopWordThreshold を設定し、ランク プロファイルを更新します。
PS C:\> $np.StopWordThreshold = 10000000 PS C:\> $np.Update()