Skip to content

Latest commit

 

History

History
232 lines (160 loc) · 13 KB

File metadata and controls

232 lines (160 loc) · 13 KB

パートナー デモキット

This is a Japanese Translation based on original readme updated on Jul 28, 2021.
English README.md is here

もくじ


はじめに

これはLucidworksパートナー向けのスターターデモテンプレートです。事前に構成されたフュージョンアプリケーションとLucidworksのアプリスタジオを使用して構築されたエンドユーザー検索アプリケーションが含まれています。

やってみよう

1. Fusionのインストール

このスターターデモテンプレートは、Fusion 5.3 を使用して作成されました。より新しいFusion 5のバージョンで使用しようとすることもおそらく出来ますが、うまく動作しないこともあるかもしれません。 (><;

Fusion 5 のインストールに関するインスタクションについては、Fusion Cloud Native on Kubernetes を参照してください。

2. Fusion App テンプレートの準備

  1. chmod setup-1.sh の実行

    setup-1.sh ファイルに実行権を付与する。

    chmod +x setup-1.sh
  2. setup-1.sh スクリプトの実行

    setup-1.shスクリプトは、環境に従ってテンプレート内のファイルの必要なパラメータを変更するのみです。アプリやモジュールのインストール自体は実行しません。

    スクリプトを実行前に、以下の5つの値を事前に確認しておく必要があります。

    • -h : fusion host名 (例: localhost)
    • -p : fusion proxy ポート (例: 6764)
    • -s : fusion server プロトコル (http または https)
    • -a : fusion app名 (新しい名前を定義)
    • -t : 各検索ページで使用するタイトル (検索 UI のタイトル)

    注: Fusion app名に空白が含まれている場合、アンダースコアに置き換えられます。また、fusion app名は、query profile、query pipeline、jobなど、多くの設定名の接頭詞として使用されます**

    # 実行例
    # Nike
    $ ./setup-1.sh -h 'my.fusionhost.com' -p 6764 -s 'http' -a 'Nike' -t 'Nike Online'
    
    # Digital Workplace
    $ ./setup-1.sh -h 'my.fusionhost.com' -p 6764 -s 'https' -a 'Workplace' -t 'Digital Workplace'
    
    # Hardware Supply Company
    $ ./setup-1.sh -h 'my.fusionhost.com' -p 6764 -s 'https' -a 'Hardware Supply' -t 'Hardware Supply'

    このsetup-1.sh スクリプトは、Fusion app名を 'partnerkit' から、定義した新しい名前に変更するために、objects.json ファイルの内容を変更します。

    例えば、以下を実行した場合:

    $ ./setup-1.sh -h 'my.fusionhost.com' -p 6764 -s 'http' -a 'Workplace' -t 'Digital Workplace'

    objects.json は以下のように変更されます。

    変更前 変更後
    object.json before object.json after
  3. setup-2.py スクリプトの実行

    このスクリプトを実行する前に、システムにPython3がインストールされていることを確認してください。

    このPythonスクリプトは、objects.jsonファイルを読み取り、特定の構成のID値を変更します。

    これは、特定の構成が、単一のFusionアプリだけでなく、単一のFusionインスタンス全体で一意である必要があるためです。

    python3 setup-2.py

3. Fusion App Templateのインポート

FusionのAdmin UIについては、General UI Overviewを参照してください。

App templateをインポートして、新しい fusion appを作成します。

  1. Fusion Admin UIへログイン

  2. Import appをクリック

  3. object.json を選択

  4. Importをクリック

    Fusionインスタンスにすでにblobstopwords / stopwords_en.txtがある場合は、以下の競合警告が表示される場合があります。 'Merge'ボタンをクリックすると、競合するファイルがスキップされ、インポートが続行されます。

  5. appがインポートされたか事を確認

4. Webデータのクローリング

テンプレートは初期値としてlucidworks.comをクローリングする設定を含みます。

Fusion のデータソースとジョブについては、DatasourcesJobsを参照してください。
Fusion データソースとジョブの深い理解は、このデモを単純に設定するためには必須ではありませんが、重要な要素なので上記ドキュメントを一読してください。

  1. Fusion Admin UIへログイン

  2. インポートしたfusion appをクリックしてワークスペースへ移動

  3. 左のナビゲーションより、INDEXING > Datasources をクリック

  4. web データストアをクリック

  5. Run > Start をクリック

  6. Job History をクリックし、Jobの実行状況を確認

  7. ステータスが変更され、jobの終了を確認

  8. QUERYING > Query Workbench をクリック

  9. データソース jobが正常に実行された場合、クエリワークベンチには次のような検索結果が表示されます。

5. Signal(シグナル)データの生成

シグナルに詳しくない場合は、Signals Overviewを参照してください。
シグナルの深い理解は、このデモを設定するために必要ではありませんが、上記ドキュメントを一読してください。

  1. sample-codeフォルダ内のgenerate-signals-threaded.pyを編集し、以下の値を環境に合わせて編集してください:

    変数 概要
    fusion_ip Fusion host名もしくはIPアドレス
    fusion_port Fusion ポート番号
    fusion_user Fusion ユーザ名
    fusion_password Fusion パスワード
    fusion_app Fusion App名
    fusion_query_profile ユーザからのクエリを処理するQuery Profile名
    fusion_collection 検索対象のデータが保持されているコレクション名
    documentLabel ドキュメントラベルを含むフィールド名(通常はファイル名または製品名) (テンプレートに指定されているインデックス パイプラインを使用している場合は、この値を変更しないでください)

    手順 2. Fusion App テンプレートの準備で fusion app名を'Workplace'と指定した場合には、'fusion_app'、'fusion_query_profile'、'fusion_collection'の値は'Workplace'になります。

  2. generate-signals-threaded.pyの実行

    $ python3 sample-code/generate-signals-threaded.py
  3. FusionのAdmin UIへ移動し, Collection Pickerをクリック、[FUSION-APP-NAME]_signalsを選択

  4. 左側のナビゲーションよりQUERYING > Query Workbench をクリックし
    シグナルデータが生成されたか確認する。

6. レコメンドの生成

レコメンデーションについては以下のドキュメントを参照ください。[Recommendations and Boosting Overview]
デモのセットアップ自体にはレコメンデーションの深い理解は不要ですが、上記ドキュメントを一読ください。

検索の関連性とエクスペリエンスを向上させるために、先ほど生成したシグナルデータを基にしたデータのコレクションと各種レコメンドアイテムを生成する。COLLECTIONS > Jobs に移動し、以下の順番でジョブを実行する。

注意: 現在のジョブが終了・成功したことを確認してから次のジョブを実行してください。

  1. [FUSION-APP-NAME]_click_signals_aggregation
  2. [FUSION-APP-NAME]_user_query_history_agg
  3. [FUSION-APP-NAME]_user_item_prefs_agg
  4. [FUSION-APP-NAME]_bpr_item_recs
  5. [FUSION-APP-NAME]_content_recs
  6. [FUSION-APP-NAME]_query_recs

すべてのジョブが終了したら、COLLECTIONS > Collection Manager へ移動して各コレクションにドキュメントが生成されたことを確認する。

例:

7. App Studioの起動

App Studioについては、Fusion App Studioを参照してください。
App Studioへの深い理解は本手順では不要ですが、上記ドキュメントを一読してください。

開発時は、以降の手順で示すようにstartメソッドを利用してアプリケーションを起動しますが、本番環境はJava WAR ファイルまたは Java JAR ファイルに検索アプリケーションをパッケージ化して展開します。詳細は、Deployment Overviewを参照してください。

重要: App Studioの起動には、npmが必要です。

npmのインストール:

$ curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
$ sudo yum install nodejs

App Studioを起動します。app-studioフォルダに移動して、以下を実行:

$ cd app-studio/
$ ./app-studio start -t 300

-t フラグはオプションであり、開始タイムアウトを秒単位で設定するために使用されます。デフォルトのタイムアウトは240秒で、App Studioを初めて起動する際には、最初に必要なファイルがダウンロードされるため、調整する必要がある場合があります。

App Studioで設定された検索 UIのスクリーンショット(例)

Summary Page
Main Search Page Search Detail Page
Typeahead