分析マッピング関数

マッピング関数は、各 Solr ドキュメントまたは削減の値にマッピングします。

分析コンポーネントは非推奨になりました。 JSON ファセット API にある同様の機能を確認することをお勧めします。 JSON ファセットでは現在カバーされていない必要な機能がある場合は、プロジェクトに通知してください。

以下は、分析コンポーネントによって提供されるすべてのマッピング関数のリストです。 これらのマッピングを連鎖させて、より複雑な機能を実装できます。

数値関数

否定

数値式の結果を否定します。

neg(<_数値_ T>)<T>
  • neg(10.53)-10.53

  • neg([1, -4])[-1, 4]

絶対値

数値式の絶対値を返します。

abs(< _数値_ T >)< T >
  • abs(-10.53)10.53

  • abs([1, -4])[1, 4]

丸め

数値式を最も近い Integer または Long 値に丸めます。

round(< _Float_ >)< _Int_ >
round(< _Double_ >)< _Long_ >
  • round(-1.5)-1

  • round([1.75, 100.34])[2, 100]

天井

数値式を、元の値以上で最も近い Integer または Long 値に丸めます。

ceil(< _Float_ >)< _Int_ >
ceil(< _Double_ >)< _Long_ >
  • ceil(5.01)5

  • ceil([-4.999, 6.99])[-4, 7]

数値式を、元の値以下で最も近い Integer または Long 値に丸めます。

floor(< _Float_ >)< _Int_ >
floor(< _Double_ >)< _Long_ >
  • floor(5.75)5

  • floor([-4.001, 6.01])[-5, 6]

加算

数値式の値を加算します。

add(< Multi Double >)< Single Double >
  • add([1, -4])-3.0

add(< Single Double >, < Multi Double >)< Multi Double >
  • add(3.5, [1, -4])[4.5, -0.5]

add(< Multi Double >, < Single Double >)< Multi Double >
  • add([1, -4], 3.5)[4.5, -0.5]

add(< Single Double >, …​)< Single Double >
  • add(3.5, 100, -27.6)75.9

減算

数値式の値を減算します。

sub(< Single Double >, < Single Double >)< Single Double >
  • sub(3.5, 100)-76.5

sub(< Single Double >, < Multi Double >)< Multi Double >
  • sub(3.5, [1, -4])[2.5, 7.5]

sub(< Multi Double >, < Single Double >)< Multi Double >
  • sub([1, -4], 3.5)[-2.5, -7.5]

乗算

数値式の値を乗算します。

mult(< Multi Double >)< Single Double >
  • mult([1, -4])-4.0

mult(< Single Double >, < Multi Double >)< Multi Double >
  • mult(3.5, [1, -4])[3.5, -16.0]

mult(< Multi Double >, < Single Double >)< Multi Double >
  • mult([1, -4], 3.5)[3.5, 16.0]

mult(< Single Double >, …​)< Single Double >
  • mult(3.5, 100, -27.6)-9660

除算

数値式の値を除算します。

div(< Single Double >, < Single Double >)< Single Double >
  • div(3.5, 100).035

div(< Single Double >, < Multi Double >)< Multi Double >
  • div(3.5, [1, -4])[3.5, -0.875]

div(< Multi Double >, < Single Double >)< Multi Double >
  • div([1, -4], 25)[0.04, -0.16]

累乗

ある数値式を別の数値式のべき乗にします。

注: 平方根関数 sqrt(< Double >)pow(< Double >, .5) の省略形として使用できます。

pow(< Single Double >, < Single Double >)< Single Double >
  • pow(2, 4)16.0

pow(< Single Double >, < Multi Double >)< Multi Double >
  • pow(16, [-1, 0])[0.0625, 1]

pow(< Multi Double >, < Single Double >)< Multi Double >
  • pow([1, 16], .25)[1.0, 2.0]

対数

数値式の対数を取得します。オプションで、2 番目の数値式を底として使用できます。式が 1 つだけ指定された場合は、自然対数が使用されます。

log(< Double >)< Double >
  • log(5)1.6094…​

  • log([1.0, 100.34])[0.0, 4.6085…​]

log(< Single Double >, < Single Double >)< Single Double >
  • log(2, 4)0.5

log(< Single Double >, < Multi Double >)< Multi Double >
  • log(16, [2, 4])[4, 2]

log(< Multi Double >, < Single Double >)< Multi Double >
  • log([81, 3], 9)[2.0, 0.5]

論理

否定

ブール式の結果を否定します。

neg(< Bool >)< Bool>
  • neg(F)T

  • neg([F, T])[T, F]

And

ブール式の値を AND 演算します。

and(< Multi Bool >)< Single Bool >
  • and([T, F, T])F

and(< Single Bool >, < Multi Bool >)< Multi Bool >
  • and(F, [T, T])[F, F]

and(< Multi Bool >, < Single Bool >)< Multi Bool >
  • and([F, T], T)[F, T]

and(< Single Bool >, …​)< Single Bool >
  • and(T, T, T)T

Or

ブール式の値を OR 演算します。

or(< Multi Bool >)< Single Bool >
  • or([T, F, T])T

or(< Single Bool >, < Multi Bool >)< Multi Bool >
  • or(F, [F, T])[F, T]

or(< Multi Bool >, < Single Bool >)< Multi Bool >
  • or([F, T], T)[T, T]

or(< Single Bool >, …​)< Single Bool >
  • or(F, F, F)F

Exists

式に値が存在するかどうかを確認します。

exists( T )< Single Bool >
  • exists([1, 2, 3])T

  • exists([])F

  • exists(empty)F

  • exists('abc')T

比較

等価

2 つの式の値が等しいかどうかを確認します。暗黙的な型変換後、パラメータは同じ型である必要があります。

equal(< Single T >, < Single T >)< Single Bool >
  • equal(F, F)T

equal(< Single T >, < Multi T >)< Multi Bool >
  • equal("a", ["a", "ab"])[T, F]

equal(< Multi T >, < Single T >)< Multi Bool >
  • equal([1.5, -3.0], -3)[F, T]

より大きい

数値式または Date 式の値が別の式の値より大きいかどうかを確認します。暗黙的な型変換後、パラメータは同じ型である必要があります。

gt(< Single Numeric/Date T >, < Single T >)< Single Bool >
  • gt(1800-01-02, 1799-12-20)F

gt(< Single Numeric/Date T >, < Multi T >)< Multi Bool >
  • gt(30.756, [30, 100])[F, T]

gt(< Multi Numeric/Date T >, < Single T >)< Multi Bool >
  • gt([30, 75.6], 30)[F, T]

以上

数値式または Date 式の値が別の式の値以上であるかどうかを確認します。暗黙的な型変換後、パラメータは同じ型である必要があります。

gte(< Single Numeric/Date T >, < Single T >)< Single Bool >
  • gte(1800-01-02, 1799-12-20)F

gte(< Single Numeric/Date T >, < Multi T >)< Multi Bool >
  • gte(30.756, [30, 100])[F, T]

gte(< Multi Numeric/Date T >, < Single T >)< Multi Bool >
  • gte([30, 75.6], 30)[T, T]

より小さい

数値式または Date 式の値が別の式の値より小さいかどうかを確認します。暗黙的な型変換後、パラメータは同じ型である必要があります。

lt(< Single Numeric/Date T >, < Single T >)< Single Bool >
  • lt(1800-01-02, 1799-12-20)T

lt(< Single Numeric/Date T >, < Multi T >)< Multi Bool >
  • lt(30.756, [30, 100])[T, F]

lt(< Multi Numeric/Date T >, < Single T >)< Multi Bool >
  • lt([30, 75.6], 30)[F, F]

以下

数値式または Date 式の値が別の式の値以下であるかどうかを確認します。暗黙的な型変換後、パラメータは同じ型である必要があります。

lte(< Single Numeric/Date T >, < Single T >)< Single Bool >
  • lte(1800-01-02, 1799-12-20)T

lte(< Single Numeric/Date T >, < Multi T >)< Multi Bool >
  • lte(30.756, [30, 100])[T, F]

lte(< Multi Numeric/Date T >, < Single T >)< Multi Bool >
  • lte([30, 75.6], 30)[T, F]

トップ

数値式、Date 式、または String 式の値の最大値を返します。暗黙的な型変換後、パラメータは同じ型である必要があります。(現在、互換性がない唯一の型は Boolean で、式をコンパイルするために暗黙的に String に変換されます)

top(< Multi T >)< Single T >
  • top([30, 400, -10, 0])400

top(< Single T >, …​)< Single T >
  • top("a", 1, "d")"d"

ボトム

数値式、Date 式、または String 式の値の最小値を返します。暗黙的な型変換後、パラメータは同じ型である必要があります。(現在、互換性がない唯一の型は Boolean で、式をコンパイルするために暗黙的に String に変換されます)

bottom(< Multi T >)< Single T >
  • bottom([30, 400, -10, 0])-10

bottom(< Single T >, …​)< Single T >
  • bottom("a", 1, "d")"1"

条件

If

ブール条件式の値が truefalse かに応じて、THEN 式または ELSE 式の値を返します。暗黙的な型変換が行われた後、THEN 式と ELSE 式は同じ型とカーディナリティである必要があります。

if(< Single Bool>, < T >, < T >)< T >
  • if(true, "abc", [1,2])["abc"]

  • if(false, "abc", 123)"123"

置換

1番目の式の値のうち、2番目の式の値と等しいものをすべて、3番目の式の値で置換します。暗黙の型変換後、すべてのパラメータは同じ型である必要があります。

replace(< T >, < Single T >, < Single T >)< T >
  • replace([1,3], 3, "4")["1", "4"]

  • replace("abc", "abc", 18)"18"

  • replace("abc", 1, "def")"abc"

欠損値の補完

1番目の式に値がない場合、2番目の式の値で補完します。暗黙の型変換後、両方の式は同じ型とカーディナリティを持つ必要があります。

fill_missing(< T >, < T >)< T >
  • fill_missing([], 3)[3]

  • fill_missing(empty, "abc")"abc"

  • fill_missing("abc", [1])["abc"]

削除

1番目の式の値から、2番目の式の値のすべての出現を削除します。暗黙の型変換後、両方の式は同じ型である必要があります。

remove(< T >, < Single T >)< T >
  • remove([1,2,3,2], 2)[1, 3]

  • remove("1", 1)empty

  • remove(1, "abc")"1"

フィルタ

2番目の式の値がtrueの場合、1番目の式の値を返し、それ以外の場合は値を返しません。

filter(< T >, < Single Boolean >)< T >
  • filter([1,2,3], true)[1,2,3]

  • filter([1,2,3], false)[]

  • filter("abc", false)empty

  • filter("abc", true)1

日付

日付解析

StringまたはLongの式の値を明示的にDateに変換します。

date(< String >)< Date >
  • date('1800-01-02')1800-01-02T​00:00:00Z

  • date(['1800-01-02', '2016-05-23'])[1800-01-02T…​, 2016-05-23T…​]

date(< Long >)< Date >
  • date(1232343246648)2009-01-19T​05:34:06Z

  • date([1232343246648, 223234324664])[2009-01-19T…​, 1977-01-27T…​]

日付演算

Date式の値に対して、指定された日付演算文字列を計算します。日付演算文字列は、定数である必要があります。

date_math(< Date >, < Constant String >…​)< Date >
  • date_math(1800-04-15, '+1DAY', '-1MONTH')1800-03-16

  • date_math([1800-04-15,2016-05-24], '+1DAY', '-1MONTH')[1800-03-16, 2016-04-25]

文字列

明示的な型変換

式を明示的にString式に変換します。

string(< String >)< String >
  • string(1)'1'

  • string([1.5, -2.0])['1.5', '-2.0']

連結

String式の値を連結します。

concat(< Multi String >)< Single String >
  • concat(['a','b','c'])'abc'

concat(< Single String >, < Multi String >)< Multi String >
  • concat(1, ['a','b','c'])['1a','1b','1c']

concat(< Multi String >, < Single String >)< Multi String >
  • concat(['a','b','c'], 1)['a1','b1','c1']

concat(< Single String >…​)< Single String >
  • concat('a','b','c')'abc'

  • concat('a',empty,'c')'ac'
    空の値は無視されます

区切り文字付き連結

指定された定数文字列値を区切り文字として使用して、String式の値を連結します。

concat_sep(< Constant String >, < Multi String >)< Single String >
  • concat_sep('-', ['a','b'])'a-b'

concat_sep(< Constant String >, < Single String >, < Multi String >)< Multi String >
  • concat_sep(2,1,['a','b'])['12a','12b']

concat_sep(< Constant String >, < Multi String >, < Single String >)< Multi String >
  • concat_sep(2,['a','b'],1)['a21','b21']

  • concat_sep('-','a',2,3)'a-2-3'

  • concat_sep(';','a',empty,'c')'a;c'
    空の値は無視されます