- 締切済み
gmailでの完全一致検索の方法について
gmailで完全一致検索を実施したいのですが、方法が分かりません。 例) 「山田 太郎」で完全一致検索を行いたい。 検索欄に、 "山田 太郎"と入力しても、「山田さん」や「山田様」等が引っかかってしまいます。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- akira1720
- ベストアンサー率80% (128/159)
すみません、まず 4017B さんの回答に対して少しコメントさせてください。 「山田太郎」が「山田」と「太郎」に分割されて検索されること自体は分かち書き文化圏でのアルゴリズムが考えなくそのまま適用されているから、とは必ずしも言えません。今から日本語専用の検索エンジンを一から作るとしても、ほとんどの人はそのような実装をすると思います。 検索結果を一瞬で返すような全文検索を実装する場合、あらかじめインデックスを作っておくことは必須だと思われます。(少なくとも現在はそう信じられていると思います。) では分かち書きされていない日本語の文をどのようにインデックスするのか。 「私は山田太郎です」という短い文を考えると、1文字ずつバラバラに索引に追加する、全ての連続した文字の組み合わせを全ての長さの文字列について索引に追加する、というような考え方もあるかと思います。 1文字ずつバラバラに索引に入っていた場合、「山田」で検索してこの文がヒットするようにするには、どのようにしたらいいか。「山」と「田」が両方含まれている文を見つければいいですが、それだと「上田は山に登った」のような関係ない文もヒットしてしまいます。 ではありうる全ての部分文字列(例えば「私」「私は」「私は山」「は山」などなど...)をインデックスしてはどうか。この場合、「山田太郎」を検索したらこれがバッチリヒットしますが、「は山」のように、検索文字列として意味がなさそうなものが多く、無駄が多いですし、例えば「田太」さんという珍名さん(全国に100人ぐらいいるらしい)がネットで同じ姓の人を探そうとしても、大量の「山田太郎」に埋もれて見つけることはできないでしょう。 ではどうするのがいいか。元の文を日本語として構文解析し、意味のある単語、文節 (および隣り合った単語や文節がいくつかくっついたもの)をインデックスすればよい、となり、結果的に、構文解析して文の要素に分割した後は、分かち書きの言語と似たような処理が適用できるようになります。 ご質問のケースでは、「山田 太郎」を含んだメールからは「山田」と「太郎」がインデックスに追加されているが、「山田 太郎」はインデックスに追加されていない、のが直接の原因だと思われます。そのような実装にした理由は検索インデックスに割くリソースを節約するためではないでしょうか。(Google 検索と違い、Gmail の検索インデックスなんて一人のユーザしか使わないものなので...)
- 4017B
- ベストアンサー率73% (1341/1821)
>完全一致で検索する時には "" で囲む~というのは嘘 うん、まあそういう事になりますね…(笑)。厳密に言うと「半分ホントで半分ウソ」て感じでしょうか? 巷のweb解説記事やblog記事などは、極々一部のハッカーやギークな人を除けば、基本的にはwikiや公式ヘルプをコピペして適当に「てにをは」や文体を変えてPV稼ぎをしているに過ぎないので。実際にgmailに使われている検索エンジンの仕様と、一般的なweb検索で利用するgoogle検索の仕様の違いを、労力を割いて詳細に自力調査したりしてないですからね…。 gmail内検索に使用されている検索エンジンの現在の仕様だと… - "山田" で検索 → "山田さん"、"山田太郎"、"山田次郎" ~等にマッチ - "山田太郎" で検索 → "山田太郎"、"山田と太郎"、"山田さんと松本太郎" ~等にマッチ ~みたいな感じになりますね。どういう訳でそんな風になっているのかは皆目見当も付きませんが、何故かgmailの検索エンジンは検索語句の "山田太郎" を自動的かつ強制的に "山田" と "太郎" の2つに分割し、それらをまとめて連語として検索して結果を表示する様な仕様になっています。 正規表現パターン風に表すなら… - "山田太郎" で検索 → /(山田).*(太郎)/ のマッチングパターンで検索 ~みたいになってますね。googleの公式ヘルプ等にも一切、説明や解説などの記載は無く、何故そんな風な処理をするのかは全く意味不明です。質問者は "山田 太郎" で検索したとの事ですが、この場合は真ん中の「空白文字」は事実上、無視されて前述の様な正規表現パターンでマッチング処理が行われている模様。いやホントに意味不明です。 P.S. googleは基本的に自社サービスの内部的な仕様を公開する事は無いため、これはあくまでも自分の個人的な経験則に基づく推量でしかないのですが…。 恐らくはこの摩訶不思議なgmail検索の仕様は、ベースとなっているgmailが英語圏での開発運営のサービスであるため、基本的に全ての言語と文字列を「英語ベースで解析し運用する」事が前提となっているせいではないかと。 ちょっとマニアックな話になりますが、英語や仏語みたいな「アルファベットと空白」で表記する言語体系、つまり… - this is a pen. ~みたいに書き表す言語体系の事を "分かち書き: word-divider" と言い、実は地球上のほぼ全ての言語では「単語と単語の間に空白を入れる」のが普通の常識で、「これはペンです」とか「這是一支筆」みたいに全ての文字や単語をギチギチに詰めて連続的に表記する言語体系は日本語と中国語、タイ語などの一部の特定アジアにしか存在しないドマイナー言語なんですね。 ですのでgoogleの中の人達はほぼ全員が例外なく英語で話して英語で考えていますので、ファイル検索などの処理の仕方にも当然ながらと言うか無意識のうちに「言語とは単語と単語の間に空白が入り、1つ1つが明示的に区分される」と思って開発研究を行っている訳なんです。 ですので彼らからしてみれば日本語は「外星人言語0号」みたいな感覚で、そもそもキチンと正常に処理出来なくても「まあエイリアンの言葉だし多少はね(笑)?」みたいな感覚なんじゃないでしょうか? 最近はgoogle自動翻訳の "中国語⇔英語" の精度が抜群に向上した事がニュースになっていましたが、日本語はまあ将来性ゼロのアジアの最貧国へ一直線の没落国家ですので、コストと人員を割いて開発研究をする意味が無いので。まあ永久にこのままでしょうね…。
お礼
ご回答ありがとうございます。 むむむ、悔しいの一言ですね、、、。 一点発見(?)しました。 Webではなく、ThunderBirdにgmailから受信メールを持ってきたところ、ThunderBird上の検索では思った通りのことが出来ました。Webメールの特性に真っ向から勝負している感じもしますが(笑。
- iyonohanamuko
- ベストアンサー率54% (6741/12375)
たとえば・・・検索欄に from:(山田 太郎) で検索してみてはいかがでしょうか? 検索箇所が件名なのか、本文なのか、From欄なのかはたまたどこか不明ですので、例示しかできません。
お礼
ご回答ありがとうございます。 本文での検索が前提でした。
- iyonohanamuko
- ベストアンサー率54% (6741/12375)
複数条件で検索してみてはいかがでしょうか? https://entame3858.com/23172.html
お礼
ご回答ありがとうございます。 「山田 太郎」で検索したい(「山田」も「太郎」も「山田太郎」も引っかからない)ような場合は、どのような複数条件が考えられますでしょうか。
- 4017B
- ベストアンサー率73% (1341/1821)
無理!って言うか「それは仕様です」というヤツですね。 一般User感覚だと、同じgoogleのメインサービスなので、google検索とgmail内検索には同じ検索エンジンが使われているものと考え、検索演算子などの適用結果にも当然、同じ様な結果が返されるものと期待しますが…実際にはかなり異なったアルゴリズムでそれぞれ違った検索エンジンによって検索結果が表示されていますね…。 また同様に一部の記号類は最初から「検索語句」としては無視される仕様になっているので、何と言うか使える様で微妙に痒い所に手が届かないみたいなもどかしさを感じさせる仕様となっています。 …と言う訳ですので、残念ながら諦めてもらうしか無いですね。どうしてもと言うのであれば、何か別の外部ツール的なモノを使うとか(そんなモノがあればの話ですが)?或いはgoogle社に対して機能改善要求を地道に送り続けるしか手は無いですね… - "Gmail でフィードバックを送信する": https://support.google.com/mail/answer/9212652?hl=ja&co=GENIE.Platform%3DDesktop&oco=0
お礼
ご回答ありがとうございます。 どんなサイトを見ても、「完全一致で検索したいならば、" で囲む。」とあったのですが、実はこれは嘘だった、ということなんですね、、、。 例で上げた検索ですと、あまりにも引っかかるメールが多くて、あまり検索する意味がありませんでした。これは我慢するか、他の方法を考えないといけないんですね、、、。
お礼
遅くなりましたが、ご回答ありがとうございました。