カットの下のプレゼンテーションの現在のテキスト
全文検索の概要
全文検索は基本的にGoogleとYandexの技術です。ユーザーは検索クエリを入力し、特定のページセットの形式で応答を受け取ります。 オンラインストアのWebサイトでは、これは検索クエリに最適な製品のリストである可能性があります。 そのようなものがあります-関連性、そしてそれは重要です。 また重要なのは、同義語、タイプミス、形態、および通常の一般顧客の通常のロジックです。
たとえば、オンラインストアでは、「購入する」、「最高の」、「高品質の」という言葉は何も意味しないため、単に無視することができます。 「ファッショナブル」、「親愛なる」、「Apple iPhone」、「Kia Seedsのバッテリー」という言葉によれば、人が何を必要としているかを明確に判断できます。
全文検索の目的の概要を以下に示します。
サイト検索が必要な理由:長所と短所
主な理由と目標は、訪問者から購入者へのコンバージョン、つまり、サイトの訪問者に対する購入の割合です。 人が製品を見つけやすいほど、購入者になる可能性が高くなります。 毎日、顧客はより怠zyになり、他の店舗の便利な検索技術に慣れているため、ウェブサイトにそのような検索がないと、販売に非常に悪影響を与える可能性があります。
さらに、単にカタログを検索するだけでは見つけられない特定の命名法があり、全文検索が必要です。1000を超えるアイテムがある場合、または必要な製品を正確に選択するのが難しい場合です。 この場合、コンピューターは選択のタスクを簡素化し、「科学的な突く」方法ではなく、人が目で見て購入できるようにします。
欠点:サイトの検索モジュールの開発に100〜200ドル。
Sphinxでの検索の実装(SphinxSearch):OS、インストールオプション、プログラミング言語
Sphinxはオープンソース製品です。 これは実際には、負荷の高いプロジェクト用にゼロから開発された検索サーバーであり、カスタム関連性(検索品質を意味する)を備え、プロジェクトへの統合が容易です。 C ++で記述されており、Linux(RedHat、Ubuntuなど)、Windows、MacOS、Solaris、FreeBSD、およびその他のあまり人気のないシステムで実行されます。
Sphinxを使用すると、準備済みのテキストデータインデックスを保存したり、SQLデータベースやNoSQLストレージを検索したり、サーバー上のファイルをすばやく簡単に検索したりできます。 データをオンザフライでインデックス化し、既存のインデックスデータに新しいインデックスデータを追加し、サーバーに負荷をかけずにオンラインで作業できます。
さまざまなワードプロセッシング機能により、プログラマはアプリケーションの要件に合わせてSphinxを微調整できるだけでなく、検索の品質を必要に応じて正確に調整できるようにする多くの機能を提供します。 2つの接続オプションがあります。
•SphinxAPIによる検索-通常のAPI
•SphinxQL-標準SQLの類似物
Sphinxクラスターは、1日あたり数十億のドキュメントと数千万の検索に対応できます。 この種の負荷は、Craigslist、DailyMotion、Netlogなどのサイトで維持されます。
オンライン自動車部品店での検索クエリの実際の例
自動車部品、または部品のオンラインストアの販売では、当社は長い間、実りのある非常に成功した従事しています。 しかし、いくつかの理由から、関連する検索が必要になったのは今だけです。
主な理由は、ほとんどの場合、全文検索がほとんどの部分に適していないことです。 しかし、それが非常に必要とされる商品の5-10%があり、それなしでは方法はありません。 また、本質的に直接的なクロスリンクを使用し、スペアパーツカタログから明確なモデルと車を示す標準検索は、この製品グループでは機能しません。 そのような「間違った」製品の例は次のとおりです。オイル、タイヤ、バッテリー、車のランプ、ワイパー、および他の同様の頻繁に販売される製品。
普通の小さな会社のスペアパーツの平均価格表は200〜1000万ポジションであり、それぞれこのベースの10%であり、必要なデータを占有します。 そのため、製品にsphinxsearch.comエンジンを導入することにしました。 Habréでこの実装の詳細を読むことができます: habrahabr.ru/blogs/sphinx/132118
高度な検索クエリ言語学習
主な検索機能は、フィールドのカスタマイズ可能な重みと検索方法です。 形態が機能し、クエリ「Castrol 5W40 oils」にテキスト「Oil」と「15W40」のドキュメントがあります。「*」記号を使用して単語「oils」で検索する必要があります。このためには、クエリビルダーが必要です。 「SPH_MATCH_EXTENDED2」モードです。
デフォルトでは、価格と関連性の両方、およびこのようなパラメーターの複合体でソートできます。 製品グループごとに関連性の方法と結果の配信順序を設定できます。これは、100を超えるドキュメントがある場合に特に当てはまります。
増分インデックスを使用すると、オンラインストアの作業を停止することなく、新しい製品やドキュメントをその場で追加できます。
まあ、最も重要な:同義語。 この例では、「Castrol 5W40 oil」というクエリを使用できますが、「Castrol 5W40 oil」と同じことがわかります。 「C#」の例では、標準のインデックススキームに従って処理されず、設定したとおりに手動で動作するように、このような非標準の単語形式を含める必要があります。 たとえば、「C#」=「ミュージシャンのCシャープの前」など、フレーズがプロジェクトでどのような意味を持つかを知っているのはあなただけです。
誰がスフィンクスに基づいてそのような検索を行うことができますか?
英語に精通し、 sphinxsearch.com / docsでドキュメントを読むことができるジュニアプログラマー
ロシア語のドキュメントとロシア語の記事もいくつかあります。
実際、検索に対する新しいアプローチへの恐怖を除いて、制限はありません。 それはすべて複雑で非常に高価なようです。 実際、すべてがシンプルで、高速で、安価です。 ハブには特別なブログがあり、ロシア語のエンジン開発者を含む反応の良いプログラマーがすべての質問に答えています。
ありがとう、私はあなたの質問に答えてうれしいです
*スポンサーリンクによるスポンサー: tecdoc + sphinxsearchオンラインストア開発
*会議の完成したプレゼンテーションへのリンク: http : //www.mstarproject.com/temp/4/presentation_sphinx_revision3.ppt