株式会社PFU 千葉辰典
前回の『登録した文書が見つからない!~ワードブレイク:英数字編~』の続編として、
「登録した文書が検索してもヒットしない」
「検索した結果が登録した文書の数と一致しない」
と言った、SharePoint「あるある」現象について「言語」の観点から見ていきたいと思います。
-----
SharePointは、さすがGlobalな製品なだけあって多くの言語に対応していることは御存じのとおりです。
さまざまな言語に対応しているため、検索(インデックス時および検索時)に利用される辞書(=ワードブレイカ―)も言語の数だけ用意されており、SharePointは自身が適切だと判断した言語のワードブレイカ―をその都度使用します。
具体的には・・・
SharePointに文書を登録すると、SharePointの検索サービス アプリケーションがインデックス時に、その中身を解析して(勝手に)言語を決めつけます。そして、判定した言語用のワードブレイカ―を用いて文書の中身とプロパティ情報を単語分割し、検索用のインデックスとして保持します。
一方で、検索を行う際には、検索キーワードはクライアント端末のブラウザの言語設定と同じ言語のワードブレイカ―を使用して、単語分割されます。
そのため何が起こるか。
つまり、「インデックス時」と「検索時」に利用されるワードブレイカ―が異なる場合に、期待する検索結果を得られないと言う現象が起こるのです。
ファイル名やプロパティ情報が「日本語」なのだから、日本語のワードブレイカ―が使われるんでしょ?
…と、普通の感覚では思ってしまいますが、いいえ、SharePointは違います。
先に記したように、言語判定はファイルの中身から判定されます。
例えば、『ファイル名』や『プロパティ情報』が日本語であっても、ファイル内容が「漢字のみ」の場合には『中国語』、「アルファベットのみ」の場合には『英語(または欧米言語)』と判断されてしまいます。(※注1)
そういった時に、検索を実行するクライアント端末のブラウザの言語設定が「日本語」の場合、ワードブレイカ―が一致しないがために、検索してもヒットしない…と言うことになります。
※注1)使用する文字種や、複数の文字種が混在している場合など、必ずしも上記のとおりとならない場合もあります。
-----
実際に、12個のファイルを用意して、試してみました。
名前の横の「はい/いいえ」は、そのファイルの中身に使用した言語を示しています。
ファイルの中身はそれぞれ、ファイル名が示す文字種(ひらがな、英字、漢字、混在)で文章が書かれています。
-----
さて、これらファイルがクロールされると、どのような結果となるのか、見てみましょう。
標準の検索結果一覧では判定言語が分からないため、弊社の取り扱うSharePointの検索機能を強化するアドオン製品「KnowledgeLake
Imaging」を使って、検索結果を見てみました。結果は下図のとおり。
タイトルやファイル名に関係なく、中身に応じて以下の結果となりました。「ファイル名」は判定に関係しないのですね。
文字種が混在している物は、今回のケースでは日本語と判断されています。(文章の長さや文字種により変わります。)
また、中国語も使用する漢字などにより「zh-cn(中国:簡体字)」だったり、「zh-tw(台湾:繁体字)」と判定されたりします。
文書の中身 | 検出言語 |
---|---|
ひらがな(=日本語)を含むもの | ja(日本語) |
アルファベットのみのもの | en(英語) |
漢字だけのもの | zh-cn(中国語:簡体字) |
続いて、文書に付与するプロパティ情報が影響をもたらすのかを調べてみます。
"プロパティ"と言う列を追加し、各文書に日本語テキスト『今日の昼食は焼肉定食でした。』を追加してから、再度クロールしてみた結果が下図です。…ご覧のとおり、言語の判定結果には影響しませんでした。
-----
では、実際に検索してみましょう。
まずはプロパティ情報に入力したのと同じ、『今日の昼食は焼肉定食でした。』と言う全文で検索してみます。なお、ブラウザの言語設定は「日本語」になっています。
すると、下図のとおり、日本語(ja)と判定された文書6件しか見つかりません。つまり、「検索文字列」のワードブレイクと、「インデックス時」のワードブレイクが一致した文書だけがヒットしたのです。
残りの文書はどうしたら見つかるのでしょうか?
そういう時は、言語を切り替えてみましょう。ブラウザの言語設定で「英語」「中国語」を追加しておくと、検索結果から切り替えることができるようになります。
下図のとおり、判定された言語で、対象の文書が見つかりました。
-----
続いて、全文ではなく、文中の単語「焼肉定食」で検索してみましょう。
まずは、ブラウザ言語設定:「日本語」の場合。日本語と判定された文書がヒットします。
ブラウザ言語設定:「英語」の場合。英語辞書には「焼肉定食」が存在しないため、ワードブレイクされず、ヒットしません。
ブラウザ言語設定:「簡体字中国語」または「繁体字中国語」の場合。中国語と判定された文書がヒットしました。中国語辞書にも「焼肉定食」と言う四字熟語(?)が存在しているのか・・・と思いきや、そうではありません。これには理由があります。
「焼肉定食」と言う言葉は、言語ごとのワードブレイカ―によって以下のように分割されます。
以下のように、中国語辞書には「焼肉定食」と言う言葉はありません。ブラウザの言語設定が「中国語」の場合、検索時のワードブレーカーによって、「焼肉定食」という言葉が「焼」「肉」「定」「食」と四分割 または 「焼」「肉定」「食」と三分割され、それぞれでAND検索されているわけです。
ワードブレイカ― | ブレイク位置 |
---|---|
日本語(ja-JP) |
焼肉定食 |
英語(en) | - |
中国語(zh-xx) |
焼 |
ですので、ブラウザの言語設定が「日本語」の場合でも、「焼」「肉定」「食」と言うように、中国語のブレイク位置を意識した検索を行うと、下図のように中国語と判断された文書を見つけることができます。
このように、意図せず日本語以外の言語でワードブレイクされているケースがあります。
登録したはずの文書が見つからないと言った時には、言語を変えてみるか、検索キーワードを"半角スペース"で分割したりして色々なパターンで試してみると、見つかるかも知れません。
-----
弊社(株式会社PFU)では、自社で培ったSharePoint&文書管理のノウハウと、SharePoint向けアドオンソリューション「ドキュメントソリューション for SharePoint」で、紙文書・電子データの積極的活用を実現するお手伝いをしています。ご興味のある方は、こちらからお問い合わせ下さい。
株式会社PFU)千葉辰典
© PFU LIMITED 2015
Microsoft、Windows、SharePoint、Excel、Word、PowerPoint、Outlookは、米国Microsoft Corporationの、米国、日本およびその他の国における登録商標または商標です。
記載された会社名および製品名は各社の商標または登録商標です。
以上。