Elasticsearch多重匹配不提升字段,這裏是代碼。Elasticsearch提升不起作用於mulit匹配
{
"size": 15,
"from": 0,
"query": {
"filtered": {
"query": {
"multi_match": {
"query": "shoes",
"fields": ["category^3", "brand^2", "title^1", "description"],
"fuzziness": "AUTO"
}
},
"filter": {
"bool": {
"must": [],
"should": null
}
}
}
}
}
理想的情況下,我想那是什麼,如果有人搜索關鍵字的鞋子,他應該得到培訓相關的結果。在這種情況下,應該看看是否有鞋子的類別,這應該有3的提升。然後,應該看看是否有任何品牌中有關鍵字「鞋子」,這應該有一個提升2.然後它應該看標題和說明。
因此,如果一個產品具有上述所有標準,那麼它應該顯示出最高的提升。
編輯:這是我的映射。
{
"mappings": {
"products": {
"properties": {
"variations": {
"type": "nested",
"index": "not_analyzed"
}
}
}
}
}
編輯:嗯,我沒有給現場的其餘部分定義的類型。我想保持它的默認。其次,我對查詢嵌套字段不感興趣。因爲這些通常包括產品的變化,例如顏色,尺寸等。這裏是一個示例文檔。
{
"title": "100% Cotton Unstitched Suit For Men",
"slug": "100-cotton-unstitched-suit-for-men",
"price": 200,
"sale_price": 0,
"vendor_id": 32,
"featured": 0,
"viewed": 20,
"stock": 4,
"sku": "XXX-B",
"rating": 0,
"active": 1,
"vendor_name": "house_of_suits",
"brand": "armani",
"category": [
"men_fashion",
"traditional_clothing",
"unstitched_fabric"
],
"image": "imagename.jpg",
"variations": [
{
"variation_id": "34",
"stock": 5,
"price": 200,
"variation_image": "",
"sku": "XXX-C",
"size": "m",
"color": "red"
},
{
"variation_id": "35",
"stock": 5,
"price": 200,
"variation_image": "",
"sku": "XXX-D",
"size": "l",
"color": "red"
}
]
}
Boost是一個因素,不是「看」的順序。請舉例說明文件(並嘗試^ 300^200^100而不是^ 3^2^1) –
我已經通過添加^ 300^200^100嘗試了您的推薦,但對評分沒有任何影響。 –
您可以打印完整的文檔映射,以便我們可以看到這些字段的字段和數據類型。匹配查詢是爲了在分析的字段上運行,但我發現你的變體嵌套對象沒有被分析。 – zachdb86