Webアプリケーションのポリシー「すべて読み取り」
投稿権限しかないはずのアイテムを見ていたら……

……あんれ~?
権限の管理が出てる??
これって既定のアクセス許可レベルで言うとデザイン権限??
でも権限をどう見直しても投稿権限のはず……。
訳が分からないまま、試しにと権限を閲覧のみに変更してみたところ……

……え?
バグった?(笑)
編集権限もないのに、権限の管理が……。
結果から言うとバクでは無く、Webアプリケーションのポリシーで「すべて読み取り」という権限を持っていると言うのが原因でした。
設定場所
サーバーの全体管理 > アプリケーション構成の管理 > Web アプリケーションのポリシー

もちろん自分でこの設定をしたならすぐにコレが原因だとたどり着けたと思うのですが……。
「クロール アカウントの検索」と言うのが肝。
コレはどうやら、クロールするユーザー用の特別権限(?)で、権限に関係なくすべてのアイテムの読み取りを許可という物のようです。
(アイテムの権限の読み取りも含む)
実は、検索関連の設定の実験なんかで自分のユーザーをクロールの既定のアカウントにした事があったんですよね。
クロールの既定のアカウントに設定したユーザーは自動的に、ここに名前が追加され「すべて読み取り」の権限が与えられるようです。
その後、システムアカウントに戻したのですが……。
どうやら、この「すべて読み取り」の権限は勝手には外れないようで……。
理解すればなんて事ない事なんですが、知らないとホントにハマりますって……orz
検索クエリの詳細なログ
さて、SharePointネタ2つ目。
ネタはいろいろあるような気はするのに、中々まとまりません。
文才がほすぃ……。
そんなこんなで、今日のネタは検索クエリのログについて。
検索クエリのログを保存するには
[サーバーの全体管理]→[共有サービス管理]→[利用状況のレポートの処理設定]
から「検索クエリのログ記録」を有効にします。
そうすると、サイトコレクションの設定画面などから検索のログを見る事が出来るようになります。
……が、もっと詳しくログを解析したい場合、SQLServerのテーブルに保存されているログを直接見る事も出来ます。
場所はコンテンツDBの「MSSQLog」テーブル。
メインはココです。
1回の検索実行につき、1レコードが保存されています。
ページ送りをしても1レコード挿入されます。
なので、1回の検索=1レコードではありません。
……え?変じゃない?って思いますが、そうなっています。
ページ送り以外にもよく分からないタイミングでレコードが増えているような気がします。
……正直、完全に解析はできていませんorz
とりあえず自社で必要なところだけ解析したので……。
MSSQLogテーブルの列で使えそうなのは
queryId | 検索文字列(「MSSQLogQueyString」テーブルに対応) |
clickedUrlId | クリックしたURL(「MSSLogUrl」テーブルに対応) |
numResults | 検索結果の件数 |
searchTime | 検索日 |
continued | ページ送りをしたかどうか(???) |
contectualScopeId | 検索範囲(「MSSLogContextualScope」テーブルに対応) |
この辺?
列の中身も完全には解析してません……。
難解っす(--)
とにかくこのあたりに保存されているので、必要な方は解析してみて下さい。(投げやり)
ていうか、レポートに出る検索件数って、ここのレコード数が出ている気がするんですが……。
ページ送りするたびに検索1回と数えられてたら、それって検索の集計としてどうなの?って気がします。
検索結果の多い検索語句でページ送りしまくったらその語句が上位に来ちゃうって事ですよね??
ダメじゃん……。
シソーラスファイルの編集時の注意点
シソーラスファイルの基本的な情報はこちらをご覧ください。
http://technet.microsoft.com/ja-jp/library/dd361734.aspx
このシソーラスファイルですが、同じ単語を2か所以上に登録するとエラーになります。
しかもファイルそのものが無効になります。
どの単語が原因なのかエラーを見ても分からないので注意しましょう。
というか、同じ単語を2か所以上に登録してはいけないと知らなかったあの頃……。
XMLの書き方などが原因かと色々探りましたよorz
しかし!
実はそれ以外にもエラーになる条件があります。
原因は同じ事なんですが、勝手に単語を違う解釈で認識して同じ単語と見なされてしまう事があります。