Platformオブザーバビリティも、セキュリティも、検索ソリューションも、Elasticsearchプラットフォームならすべて実現できます。Cloudお好みのクラウドプロバイダーでElasticを活用し、必要な答えを見つけられます。panelオブザーバビリティアプリやインフラをまとめて可視化し、問題を先回りして修正できます。ログ監視アプリケーションパフォーマンス監視インフラ監視シンセティック監視リアルユーザー監視ユニバーサルプロファイリングAIOpsOpenTelemetryオブザーバビリティの概要セキュリティサイバー脅威を広範囲で防御、調査し迅速に対応できます。脅威ハンティング調査とインシデントレスポンス脅威保護の自動化セキュリティの概要Searchあらゆるクラウドで迅速に検索結果を示し、パーソナライゼーションも高められます。次に取るべき行動を大規模かつ柔軟、スピーディに見つけられます。panel開発者コード関連のあらゆる情報やフォーラム、グループをご覧ください。コミュニティフォーラムダウンロードつながるテクノロジーやイノベーション、ニュースに関する最新情報をお届けします。イベントブログ学習スキルを磨き、将来の成功につなげましょう。Labsヘルプどのような問題でも、必要なサポートをご提供します。100km以内」などといった条件をもとに検索ができ、条件に一致するドキュメントのスコアは全て同一です。文字列を条件に指定した場合には、検索対象の文字列の長さや、条件に一致した句の数や頻度などに応じて、それぞれのドキュメントのスコアは異なり、順位付けがなされます。検索機能をアプリケーションに実装する場合、検索順位を制御したい場合が多々あります。「1000円以上の商品を安い順」「今週入荷した商品を新しい順」「東京都庁から近い順」に並べるといった場合です。それらのうち、複数の条件を組み合わせたい場合もあるでしょう。Elasticsearchを使用して、どのように実装したら良いでしょうか。フルーツのオンラインショッピングサイトを想定し、以下のような商品テーブルを用意します。)」、「商品名(name)」、「生産地(origin.location)」、「価格(price)」、「販促度(promotion)」フィールドを用意しました。利用者は「商品名」のみで検索しますが、「入荷日」が新しいもの、フラッシュセール用の「販促度」が高いものが、より上位に表示されるように試みてみます。注意:本項に使用しているインデックスやクエリはこちらで入手できます。)」などを調整する必要があります。クエリのnowを2018-12-06とすることもできます。Score)まずはじめに思いつくのは、ユーザが検索したキーワードに該当するドキュメントから、「入荷日(arrival_date)」と「販促度(promotion)」を要素としてスクリプトにより点数付けし、各ドキュメントのスコアを上書きするものです。Scoreを用いて実現できます。アプリケーションは、Elasticsearchに以下のようなクエリをリクエストすることができます。}}script_scoreで、「入荷日(arrival_date)」から現在の経過日数を求め、「販促度(promotion)」から引いています。「販促度(promotion)」が高く、より新鮮な商品が上位に表示されることになります。実際に多くElasticsearchユーザーが、このような方法を用いています。好ましくないのでしょうか。それは、Elasticsearchはスクリプトを実行するために、マッチクエリーで一致したドキュメント全ての、「入荷日(arrival_date)」フィールドと、「販促度(promotion)」にアクセスし、それぞれのドキュメントでスクリプトを用いて計算を行い、求められた値にしたがって検索順位を並べ替える必要があるからです。プロファイルAPIを用いて観察してみると、scoreに多くの時間(本例では267,863ナノ秒)が割かれていることがわかります。Functionを利用できます。指定した原点から遠ざかるほど、検索スコアが下がり、複数の条件を指定したり、減衰度を調整することができます。以下のようなクエリで実現することができます。}}まず、「商品名(name)」にappleが含まれるものを検索します。「入荷日(arrival_date)」が現在より遠ざかるほど、直線的(Linear)にスコアが下がります。同様に、「販促度(promotion)」が10から遠ざかるに連れて、スコアが下がり、これら3つのスコアを足した(sum)ものをスコアとします。スコア自身はscript_scoreとは異なりますので、検索の順位は異なる可能性がありますが、「入荷日」が新しいもの、フラッシュセール用の「販促度」が高いものを上位にするという要件を満たせることがわかります。プロファイルAPIを使用すると、より少ないコスト(計算時間)のscoreで(本例では24,824ナノ秒)、レスポンスが得られることが確認できます。}}減衰(Decay)関数を地理情報に応用する減衰(Decay)ファンクションが適用可能なのは、数値や日付時刻だけに限らず、地理情報にも適用できます。ある地点から遠ざかるほどスコアが下がるという検索は、タクシーの配車やイベントのチケット販売、デーティングアプリケーションなど、様々なケースで容易に応用できます。フルーツのオンラインショッピングサイトにおいて、生産者直送の地産地消を推進するのであれば、以下のようなクエリで、購入者から地理的に近い商品を勧めることもできます。}}まとめ検索順位を柔軟に、かつ自在に制御するヒントは得られましたでしょうか。パフォーマンスの観点からは、なるべくスクリプトによるスコア計算は、避けることが望ましいですし、Elasticsearchが提供している減衰(Decay)ファンクションは、より低コストで検索順位を制御できる機会を提供しますので、第一の候補として検討してください。Searchを用いると、GUIを用いて関連性をチューニングすることができます。条件に応じた検索結果をその場でリアルタイムに確認できたり、アプリケーション開発者の手を煩わせることなく検索順位を制御することができます。この他にも便利なAPIや検索UIのリファレンスなども提供していますので、アプリケーション開発の工数を著しく削減します。B.V.の商標、ロゴ、または登録商標です。Foundationの商標です。