Java アプリケーションで ElasticSearch を使用する際に問題が発生しています。私は自分自身を説明します、私は次のようなマッピングを持っています:
{
"products": {
"properties": {
"id": {
"type": "long",
"ignore_malformed": false
},
"locations": {
"properties": {
"category": {
"type": "long",
"ignore_malformed": false
},
"subCategory": {
"type": "long",
"ignore_malformed": false
},
"order": {
"type": "long",
"ignore_malformed": false
}
}
},
...
ご覧のとおり、場所で構成される製品のリストを受け取ります。私のモデルでは、この場所はすべてのカテゴリの製品です。これは、製品が 1 つ以上のカテゴリに属することができることを意味します。このカテゴリのそれぞれで、製品には注文があります。これは、クライアントが表示したい注文です。
たとえば、ダイヤモンド製品は、ジュエリーでは 1 位ですが、女性では 3 位になることがあります (私の例はあまり論理的ではありません ^^)。そこで、[ジュエリー] をクリックすると、この特定のカテゴリの locations.order フィールドで並べられたこの商品を表示したいと思います。
今のところ、特定のカテゴリのすべての製品を検索すると、受信した ElasticSearch の応答は次のようになります。
{"id":5331880,"locations":[{"category":5322606,"order":1},
{"category":5883712,"subCategory":null,"order":3},
{"category":5322605,"subCategory":6032961,"order":2},.......
この商品を、検索している特定のカテゴリの location.order 要素で並べ替えることはできますか? たとえば、カテゴリ 5322606 を照会している場合、この製品の注文 1 を取得する必要があります。
よろしくお願いします!よろしく、オリヴィエ。