すべてのプロダクト
Search
ドキュメントセンター

OpenSearch:仮想属性句

最終更新日:Dec 28, 2024

説明

OpenSearch Retrieval Engine Edition では、distinct 句、aggregate 句、filter 句などの句に複数の種類の式を指定できます。たとえば、query:config=cluster:daogou&&query=Computer&&filter=price+MailPrice(distance)<80 を指定できます。指定された式では、price は製品の単価を指定し、MailPrice は物流費を計算するために使用されるカスタム関数プラグインを指定します。製品の合計価格は、単価と物流費の合計です。

以下のシナリオでは、より多くの機能が必要になります。

* distinct 句と aggregate 句をクエリステートメントに含め、これらの句で price+MailPrice(distance) 式を使用したいが、各句で式を繰り返したくない場合。
* 計算プラグインを使用して、price+MailPrice(distance) 式に基づいて製品の合計価格を計算したい場合。
* price+MailPrice(distance) 式に基づいて計算された製品の合計価格を取得したい場合。
* クエリ結果の概要から price+MailPrice(distance) 式に基づいて計算された製品の合計価格を取得したい場合。

これらのシナリオの要件を満たすために、仮想属性句を使用できます。

構文

次のサンプルコードは、仮想属性句の構文を示しています。

virtual_attribute='va_description [{';' va_description}]
va_description := va_name ':' va_expression
va_name := IDENTIFIER
va_expression := arithmetic_expression | logical_expression | function_expression

サンプルコードでは、va_name パラメーターは、va_expression パラメーターによって指定された式の名称を指定します。distinct 句、filter 句、aggregate 句、attribute 句、および sort 句で va_expression を va_name に置き換えることができます。virtual_attribute 句では、宣言した va_name パラメーターも使用できます。

例:

1. config=cluster:daogou&&query=Computer&&virtual_attribute=va1:price+MailPrice(distance)&&filter=va1<80
2. config=cluster:daogou&&query=Computer&&virtual_attribute=va1:price+MailPrice(distance);va2:disCountPrice(va1)&&attribute=id,va1,va2&&sort=+va2

使用上の注意

  • 仮想属性句のパラメーターは、トポロジカル順序に基づいて宣言してください。OpenSearch Retrieval Engine Edition は、仮想属性句のパラメーターのトポロジカルソートを自動的には実行しません。たとえば、virtual_attribute=va2:disCountPrice(va1);va1:price+MailPrice(distance) は、va1 と va2 の位置が正しくないため無効です。va1 を va2 の前に宣言する必要があります。

  • 仮想属性句は、va1=123、va2="abc"、va3=1+2 などの定数式をサポートしていません。