問題タブ [elasticsearch-nested]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
125 参照

elasticsearch - エラスティックサーチの親ドキュメントフィールドに基づいてネストされた集計フィールドをソートする方法は?

私はさまざまな場所にある店舗のインデックスを持っています。各店舗には、割引クーポンのネストされたリストがあります。

これで、指定された場所で最も近い適用可能なクーポンの距離でソートされた半径の ax km のすべての一意のクーポンのリストを取得するクエリがあります

データベース :: エラスティックサーチ

インデックス マッピング ::

サンプルドキュメント ::

指定された場所の x km エリアで一意の割引クーポン名を取得する古いクエリ ::

更新された応答 ::

上記のクエリは、カウントでソートされた最初の 200 割引クーポンのデフォルトを返しますが、指定された場所に基づいて距離でソートされたクーポンを返したいと思います。つまり、最も近い適用可能なクーポンが最初に来るはずです。

親キーに基づいてネストされた集計をソートする方法はありますか、または別のデータ モデルを使用してこのユース ケースを解決できますか?

クエリを更新 ::

0 投票する
1 に答える
88 参照

elasticsearch - エラスティック検索クエリ - オブジェクトの配列内

100 以上のドキュメントを含むインデックスを作成しました。サンプル 2 つのドキュメントを次に示します。

文書 1:

"OfficeId": 1、"Officename": "Washers Ltd"、"顧客": [

文書 2:

"OfficeId": 2, "Officename": "Coldwell Ltd", "customers": [

UI から、customername または customerphone で検索できます。電話1111111111で検索している場合、2 つのドキュメント (ヒット 0、ヒット 1) を取得する必要がありますが、最初のドキュメント/ヒット 0 で、1 つのオブジェクトのみを表示するようにフィルタリングするにはどうすればよいですか?