全文サイト検索-現代のインターネットの惨劇

適切なサイト検索を実装することは、多くの場合、過小評価されているタスクです。 検索はサイトの弱点であることが多いため、検索バーを見ると、すぐに大失敗の偏見を感じます。 また、動揺しないように、すぐに質問をGoogleまたはYandexにリダイレクトし、必要なものをすばやく見つけました。 どういうわけかこの状況を改善するために何をすべきか?



YandexおよびGoogleサイト検索フォーム



人気のある検索エンジンの作成者は、それを最大限に活用し、理解してくれました。 そして、 YandexまたはGoogleからサイトに検索フォームを設定するだけで、彼らの仕事の結果を活用できます 。これは簡単な方法ですが、欠点があります。
  1. サイトのすべてのページが検索で利用できるわけではありません。 検索システムは、サイトのすべてのページの検索への組み込みを保証しません。さらに、検索ロボットがすべてのページにアクセスできるわけではありません。
  2. サイトに新しいページが表示されてから検索で利用可能になるまでに大きな遅延があります。
  3. 検索の絞り込みを指定することはできません。 たとえば、サイトの1つのサブセクションのみ、または製品の価格帯で検索できます。
  4. Webサイトのデザインに検索結果を理想的に埋め込むことはできません。 これは、ほとんどの評判の良いポータルに対するこのような検索のすべての利点を打ち消します。
以下は、初心者の検索エンジンが遭遇する可能性のある問題の不完全なリストです。 したがって、このソリューションは、商業イメージが特に心配されていないサイトにのみ推奨できます。



検索品質



まず、検索品質の概念を構成するものを理解する必要があります。 検索の品質は多くの要因に依存します。 それらの多くについては、有名な検索エンジンオプティマイザー、Candidate of Technical Sciences Igor Ashmanovの本で読むことができます。 (私は最近、 torrents.ruで彼女を見たという秘密を教えます)。 すべての要因は、条件付きで、完全性、正確性、ランキングの3つのカテゴリに分類できます。



完全性



満杯は、検索されるページの数です。 検索用のデータのインデックス作成には、「内側」と「外側」の2つのアプローチがあります。
  1. 「内部」は、通常はデータベースに保存されているサイトのソースデータのインデックス作成です。 この方法では、検索結果に「ごみ」ページが含まれることはなくなりますが、検索の完全性が低下するリスクも伴います。
  2. 「外部」- 検索ロボットによるインデックス作成 ほとんどの場合、このアプローチは高い完全性を保証しますが、多くの問題も引き起こします。これについては、 今後の記事で説明します
ユーザーがテキストを伴わずにサイトに検索行を表示した場合、「contacts」というリクエストを入力することで、連絡先ページに移動することを期待しています。 これがそうでない場合、クライアントは常に正しいため、これはウェブマスターエラーです:)



この理由は、検索プログラムがデータベースからデータを取得するため、ほとんどのサイトが動的データのみで検索するためです。 さらに、通常、ウェブマスター(またはCMSの作成者)は、データベース内のどのテーブルが最も重要で、どのテーブルが注目に値しないかを決定します。 「オーバーボード」検索の結果、「重要でない」動的データとすべての静的ページが残っています。



一方、目標が検索の完全性を最大限にすることである場合、結果は大量の「ゴミ」と重複ページになる可能性があり、これもユーザーの忠誠度に悪影響を及ぼします。



精度



検索精度は、検索クエリで見つかった一致ページの特性です。 これには、形態の説明、同音異義語の削除、タイプミスの説明、同義語の検索などが含まれます。たとえば、ユーザーが「Arshavinの目標数」を検索した場合、頭はそれとは無関係であり、得点された目標に関する情報のみを表示する必要があることは明らかです。 ここに、同音異義語の別の興味深い例があります。 しかし、これは曲技飛行であり、ユーザーが見たい最も単純なものは、可能なすべての単語形式の検索です。



形態を考慮するために、 ステマー 、形態辞書、ハイブリッドアルゴリズムなどのさまざまなアルゴリズムが使用されます。 それらはすべて、ある程度まで不完全です。 たとえば、「is」という単語は、「だった」、「意志」、「食べた」という形をとります。 単純なステマーはこれを理解しません。 形態学的辞書は、 「lull」という単語の単語形式を提供することはほとんどありません。 辞書ベースとヒューリスティックのセットを使用するより複雑なハイブリッドアルゴリズムは、より高度ですが、不完全でもあります。 現在、形態を考慮した状況は次のとおりです。
  1. SQLツールのみを使用してデータベースを検索する場合、通常は口ごもりを使用します。 これは、形態の最悪の原因です。
  2. SphinxLuceneXapianなどのオープンソース検索エンジンは、通常、独自の形態素解析ツールのインストールをサポートしますが、通常、ステマーはロシア語の組み込みアルゴリズムとしても使用されます。
  3. Yandex.ServerFASTGoogle Applianceには、高度なハイブリッドモルフォロジーアカウンティングアルゴリズムがあります。 おそらくYandex.ServerとGoogle Applianceは、ウェブ検索と同じアルゴリズムを使用しているため、既存の言語からロシア語に最適な形態素解析ツールを持っているでしょう。




ランキング



ランキングとは、検索結果ページで見つかったドキュメントのソート順を意味します。 結果を単純な基準、たとえば変更日で並べ替えることで十分な場合もありますが、ほとんどの場合、検索クエリと結果の近接度を下げるためにドキュメントを整理する必要があります。 ランキングでは、大規模な検索エンジンの開発者が大量のコピーを壊したため、彼らの製品は最高の結果をもたらします。 ランキングの状況は次のようなものです。
  1. SQL検索を使用する場合、ランキングは日付などの単純な基準に従ってのみ可能です。
  2. オープンソースシステム(Sphinx、Luceneなど)には、高度なランキングアルゴリズムが組み込まれています。 これらは通常、 テキスト関連性の類似性の修正です。
  3. 商用製品(Yandex.Server、FAST、Google Applianceなど)には複雑な多要素ランキングアルゴリズムがあり、その秘密はCoca-Colaのレシピと同じように7つのロックの下で秘密にされています。

結論

  1. 小規模な非営利サイトには、Yandex / Google検索フォームが適しています。
  2. クエリの形態、複雑なランキング、および少量のデータを含む分析を必要としないサイトのセクションを検索するには、SQLクエリ+ステマーを使用できます。
  3. 重要な記事を含む十分に大きなサイトの場合、Yandex.Server、FAST、Google Applianceなど、優れた形態とランキングのエンジンを使用する必要があります。
  4. Lucene、Sphinx、およびその他は、魂がオープンソースにあり、検索要件がエンジンの機能によって満たされている場合に適しています。

関連リンク

  1. 「Webプロジェクトの全文検索ソリューションの概要:Sphinx、Apache Lucene、Xapian」-http://www.developers.org.uaの記事
  2. 高性能フルテキスト検索」 -MySQLを使用する場合の一般的なフルテキストオープンソースエンジンの検索パフォーマンスとインデックス作成の比較(PDF 109kb)
  3. http://poiskovod.ru-私のブログのオリジナル記事



All Articles