Suggest.io。 最初の文字を理解してください。 パート2

約1か月前に、 Suggest.ioコンテキストプロンプトサービスhttp://habrahabr.ru/blogs/startup/110509/ )について既に書いています。 ベータテストの最初の波は成功し、サービスの機能を拡張することにしました。







新機能





Suggest.ioの新しいバージョンでは、いくつかの本当に興味深い革新を導入しました。 しかし、それについては後で。



主なものは、私たちのサービスがすべてのユーザーグループに対して可能な限りアクセス可能になったことです 初心者開発者向け。 インターフェースと使いやすさに取り組んだ結果、クライアントリソースに関するヒントの作成と実装が大幅に簡素化されました。



これで、基本バージョンのSuggest.ioの構成とインストールは10分以内に完了し、4つのステップで実行されます。



1.新しいサイトを追加する

2.サイトへの新しいフィールドの割り当て

3.プロンプトフィールドの外観の設定

4.スクリプトのインストール(JSコードの数行のコピー)



検索する



最も重要な変更の1つ-行の先頭だけでなく、プロンプト全体のフレーズの完全一致でも検索するようにSuggest.ioを構成できるようになりました。

[設定]ページで検索方法を設定できます



新しいデータストレージ機能





サービスの作業中に、クライアントサイトのSuggest.ioウィンドウで他に何が必要かを考えました。 おそらくツールチップの出力を写真で整理するといいでしょう。 そしてさらに良い-ヒントの説明を表示し、カテゴリに分類します:製品、株式、イベント、人など。 クライアントサイトのトピックとルーブレーションに従って。



千のオプションを経て、結論に至りました-ユーザーは何をどのように保存するかを決めなければなりません。 でした。

これで、HTTP APIを介してSuggest.ioとクライアントサイトの自動対話を構成できます。 Suggestioで、Webサイトのデータベースとプロファイルのデータベースの同期を設定します。 説明、写真、カテゴリ、リンクを使用します-必要なものすべて。 カテゴリフィールドにニュース、フォトギャラリーへのリンク、レビュー、および最も人気のあるクエリを表示します。 そして、これはすべて、一般的なSuggest.ioプロンプトフィールドに、同時にリクエストの最初の文字で表示されます。



Suggestio API



現在、次の4つの機能が実装されています。



-クリア(ベースを完全にクリアする);

-import(.CSVからプロンプトをインポートするため);

-エクスポート(Suggest.ioサーバーからデータベースをエクスポートするため);

-ログ(デバッグに使用)。



ログイン

Suggest.io API関数を呼び出すには、クロスサーバー認証を使用する必要があります。



Suggestio HTTP APIは、qop = authディレクティブを使用したHTTPダイジェスト認証をサポートしています。 RFC2617でこのタイプの認可について詳しく読んでください



curlを使用した承認の例:



curl --digest --user my-server:my-passkey ...
      
      







ここで、my-serverおよびmy-passkeyは、それぞれサイトのIDおよび秘密鍵です。 それらはウェブサイトの管理ページで見つけることができます。



インポート

インポートを使用すると、サイトのデータベースとSuggest.io上のデータベースとの自動同期を構成できます。



関数を呼び出すための構文は次のとおりです。



 http://suggest.io/api/v1/suggests/import/<field-name>/<column-definition>
      
      







<field-name>はインポートが行われるフィールドのID、<column-definition>はヒント(ピリオドで区切られた変数名)を含む.CSVファイルの形式です。



いくつかの例を考えてみましょう。



次の形式のヒントを含む.CSVファイルがあるとします。



 bananas,2,fruit tomato,2,vegetable apple,1,fruit
      
      







インポート関数呼び出しは次のようになります。



 http://suggest.io/api/v1/suggests/import/fruits_and_vegetables_field/suggest.rating.kind
      
      







サジェスト変数を使用する必要があることに注意してください! 他の変数は任意に設定できます。



変数のおかげで、プロンプトの外観を設定する段階で必要なデータを操作できます。



輸出する

このAPI関数を使用すると、任意のフィールドのデータベースダンプを.CSV形式で取得できます。



関数呼び出しの構文:

 http://suggest.io/api/v1/suggests/export/<field-name>/<column-definition>
      
      







タイプの列定義サジェスト。レーティングとレーティング.suggestは現在サポートされています。



クリア

この関数は、選択したフィールドのデータベースを完全にクリアするように設計されています。



関数呼び出しの構文:

 http://suggest.io/api/v1/suggests/clear/<field-name>
      
      







Javascript



一般に、初期化のためのJSコードは次のとおりです。



 <script type="text/javascript"> suggestioField = 'new-test-field'; //  id ,      suggestioForm = 'sformvQYUy9nuFL'; //  id ,      suggestioFieldId = '108'; //      Suggestio fieldRkey = 'v6LslrWV'; //        Suggestio suggestio.initSuggestio(); </script>
      
      







初期化関数は、ヒントを含む要素を作成します。



 <div class="suggestions-container" id="suggestions"></div>
      
      







ヒントを使用してブロックの表示を制御するために、Suggestio JSクラスは形式の概念を提供します。

形式は次の形式のJSオブジェクトです



 'default':{ suggestionBody: '<div class="one-suggestion" id="suggest/index/">/suggest/</div>', suggestionPrefix: '<div class="prefix"> :</div>', suggestionPostfix: '<div class="postfix">   </div>', onMouseOver:function(event){ }, onMouseOut:function(event){ }, onClick:function(){ }, submitFunction:function(){ } }
      
      







suggestionBody-要素には、個々のプロンプトの外観の説明が含まれます。

suggestionPrefix-要素には、プロンプトグループのプレフィックスの外観の説明が含まれます。 簡単に言えば、このアイテムはプロンプトのリストまで表示されます。

suggestionPostfix-要素には、プロンプトのグループの「フッター」の説明が含まれます。 この項目は、すべてのプロンプトの後に表示されます。



/ you_var_name /という形式で変数置換を使用できることに注意してください。



onMouseOver、onMouseOut、onClick要素には、各プロンプトに割り当てられる関数が含まれています。

submitFunction-入力フィールドを含むフォームに割り当てられます。



関数では、指定した変数に直接アクセスできます。



たとえば、次の形式のプロンプトを含むファイルをダウンロードした場合



 suggestion one,10,http://mysite.com/item_one suggestion two,10,http://mysite.com/item_two suggestion two,10,http://mysite.com/item_three ...
      
      





そして、 suggest.rating.suggestion_urlという形式の列定義を指定しました。

次の形式を使用して表示できます。



 ... onClick:function(){ window.location = suggestion_url }, submitFunction:function(){ window.location = suggestion_url } ...
      
      







いくつかの異なる形式を使用できます。 これを行うには、プロンプトをグループ化する変数を指定する必要があります。 野菜と果物の例を考えてみましょう。



 bananas,2,fruit tomato,2,vegetable apple,1,fruit
      
      







インポート時に指定された列定義:



 suggest.rating.kind
      
      







kind変数を使用して、タイプ別にグループ化します。 初期化関数の前に次のディレクティブを追加します。



 ... suggestio.formatColumn = 'kind'; suggestio.initSuggestio();
      
      







次に、果物と野菜の2つの異なる形式を定義します。

関数を使用して形式を設定できます



 suggestio.defineFormat('format_name', format_object);
      
      







野菜:



 suggestio.defineFormat('vegetable', { suggestionBody: '<div class="vegetable-suggestion" id="content/index/">' + '/suggest/ (/kind/)' + '</div>', suggestionPrefix: '<div class="vegetable-prefix">Check out our vegetables:</div>', suggestionPostfix: '<div class="vegetable-postfix"></div>' });
      
      







果物:



 suggestio.defineFormat('fruit', { suggestionBody: '<div class="fruit-suggestion" id="content/index/">' + '/suggest/ (/kind/)' + '</div>', suggestionPrefix: '<div class="fruit-prefix">Check out our fruits:</div>', suggestionPostfix: '<div class="fruit-postfix"></div>' });
      
      







ご不明な点がございましたら、サポートチームがsupport@suggest.ioにメールでお答えします。



All Articles