1

solr がクエリの if 条件をサポートしていることは知っています (例: fl=if(min(2,myField),2,myField))。Elasticsearch で同様の機能を見つけることができません。最も近いのはscript fieldsです。

  1. Elasticsearch は次のようなネストされた関数クエリをサポートしていますmin(max(myField,0),1)か?
  2. もしそうなら、それはソートのためのそのようなクエリもサポートしていsort=min(max(myField,0),1)ますか?
4

1 に答える 1

5

スクリプトは、あなたが探しているものです。デフォルトのスクリプト言語はmvelですが、 javascriptgroovypythonなど、他の言語をサポートするプラグインを簡単にインストールできます。Java で独自のネイティブ スクリプトを作成することもできます。

さまざまな API でスクリプトを使用できます。いくつかの例を次に示します。

ドキュメントページから、スクリプトをファイルシステムに配置してプリロードすることができます。

スクリプトは常に関連する API の一部として提供できますが、config/scripts(完全なスクリプトを提供する代わりに) 下に配置し、スクリプト名で参照することによって事前に読み込むこともできます。これにより、クライアントとノードの間で渡されるデータの量を減らすことができます。

スクリプトの名前は、それが存在するディレクトリの階層と、拡張子 lang を除いたファイル名から派生します。たとえば、下config/scripts/group1/group2/test.py に置かれたスクリプトは という名前になりますgroup1_group2_test

Java で記述されたネイティブ スクリプトのみがインターフェイスを実装する必要があります。mvel、javascript python、または groovy のいずれかの場合、必要なスクリプトを関連する API と一緒に渡す代わりに、必要なスクリプトをファイルに記述し、その名前を使用して参照することができます。

于 2013-07-19T08:23:12.243 に答える