SharePointの検索仕様 ~完全一致と前方一致~

株式会社PFU 千葉辰典


少し時間が開いてしまいましたが・・・
今回は、意外とご存じない方や悩まれている方がいらっしゃるので、SharePointの検索仕様について簡単にご紹介します。

前回同様、ドキュメント(やアイテム)にプロパティを付けてSharePointに登録しても、検索で引っかからない・・・と言った悩みの一助になれば幸いです。

※本稿での検証は、あくまでもSharePoint標準の検索機能を用いた検索結果です。

-----

結論から先に書いてしまうと、SharePoint標準の検索では「完全一致」と「前方一致(例:ABC*)」しか対応していません。
つまり、「後方一致(例:*DEF)」や「曖昧検索(例:*BCD*)」には対応していません。

なお、検索時の比較対象はプロパティに入力した文字列全体だけでなく、SharePointがクロール時に分析して区切った単語(ワードブレイク)単位となります。これについては次回以降のTipsで言及します。

-----

多くの業界では、契約番号や型名、会員番号など、何らかの体系で構成された管理番号・文字列が存在します。そして文書管理システムでは、それら管理番号(コード)で検索できるようにと、任意列を設けて値を入力できるようにしているケースが多く見られます。

例えば、運転免許証。
少し余談になりますが、12ケタの数字には、実は意味があります。先頭の2桁は最初に交付を受けた都道府県コード。続く2桁は交付年(西暦下二桁)。そして最後の1桁は紛失などで再発行した回数。(真ん中の7桁はチェックコード)

さて、SharePointで検索するとどうなるでしょうか?
もちろん、12ケタの数字を全部入力して検索すれば、対象のデータを検索することは可能です。検索対象の文字列と、検索文字列が完全一致したからです。

では都道府県コードを使って、特定の県だけのデータを免許証番号から抽出する・・・と言うことができるか?神奈川県のコードである「45」とだけ入力して検索してみると・・・何も見つかりません。検索対象と検索文字列が一致していないからですが、この場合、前方一致するように「45*」と入力することで、見つけることができます。

次に、3-4桁目の交付年だけで探すことができるか?例えば、「*15*」などと前方&後方一致をすれば・・・答えはNOです。実はSharePointは後方一致「*HOGE」をサポートしていないため、文字列の中間にある文字を検索することはできないのです。

-----

以下、上記を踏まえて実際にやってみました。
まず検索対象です。2ファイルあります。
Tips06_01.png

これを完全一致で検索してみます。検索対象と検索文字列が一致するため、当然見つかります。
Tips06_02.png

両方を見つけたいので、前方一致で検索してみます。末尾にアスタリスク[*]を付けます。
Tips06_03.png

一致しない文字列(下左図)や後方一致(下右図)はできません。
Tips06_04.png

-----

SharePoint 2013の検索では、検索クエリを構築するためにキーワードクエリ言語(KQL)が既定として用いられており、KQL構文を使って検索アプリケーションサービス(Search Service Application)に渡す検索用語やプロパティ制限を指定しています。

以前の投稿「開発&検索で使える管理プロパティの作成方法」で、管理プロパティを用いた検索は、このKQL構文に準じたものです。(詳細は、MSサイト「キーワード クエリ言語(KQL)構文のリファレンス」を参照してみてください。)

 

次回は、今回の話に関連して、「登録した文書が見つからない!~ワードブレイク:英数字編~」をお送りします。

-----

弊社(株式会社PFU)では、自社で培ったSharePoint&文書管理のノウハウと、SharePoint向けアドオンソリューション「ドキュメントソリューション for SharePoint」で、紙文書・電子データの積極的活用を実現するお手伝いをしています。ご興味のある方は、こちらからお問い合わせ下さい。

株式会社PFU)千葉辰典

© PFU LIMITED 2015

Microsoft、Windows、SharePoint、Excel、Word、PowerPoint、Outlookは、米国Microsoft Corporationの、米国、日本およびその他の国における登録商標または商標です。

記載された会社名および製品名は各社の商標または登録商標です。

以上。