我在爲我的Java應用程序使用ElasticSearch時遇到了麻煩。 我解釋一下,我有一個映射,這是一樣的東西: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
}
}
},
...
所以,你可以看到,我收到的產品,這是由位置的列表。在我的模型中,這些位置是所有類別的產品。這意味着一個產品可以在一個或多個類別中。在這個類別的每個類別中,產品都有一個訂單,這是客戶想要向他們展示的訂單。例如,鑽石產品可以在珠寶首飾中佔第一位,但在女性中佔第三位(我的例子不是那麼邏輯^^)。 所以,當我點擊珠寶首飾時,我想展示這個產品,按照這個特定類別的字段locations.order排序。
就目前而言,當我搜索的所有產品在特定的類別,我收到ElasticSearch的反應是一樣的東西:
{"id":5331880,"locations":[{"category":5322606,"order":1},
{"category":5883712,"subCategory":null,"order":3},
{"category":5322605,"subCategory":6032961,"order":2},.......
是否有可能這個產品進行排序,由元素locations.order對於我正在尋找的特定類別?例如,如果我正在查詢5322606類別,我想要購買該產品的訂單1。
非常感謝你事先! 問候, 奧利維爾。
你好DrTech, 非常感謝你的回答,這正是我一直在尋找。我修改了我的映射,它工作正常。 但是,我不知道如何使用java API執行custom_score請求,並且沒有提及它。 你能幫我解決嗎? 再次感謝您!非常感謝。 祝您週末愉快。 Olivier –
然後您應該接受答案:) – DrTech
我等待知道您是否對java API有一些反饋。 我剛剛接受了答案,因爲它很好地解釋了我的理解現在好多了。 你對java API有一些瞭解嗎? 非常感謝您事先。 –