2013-08-23 49 views
1

elasticsearch有很多評分/提升選項,但我還沒有找到爲特定領域添加恆定提升值的可能性。如果存在這樣的選擇,映射應該是什麼樣子?也許有一個選項來計算整個文檔的分數取決於哪個字段正在被擊中?如何在elasticsearch中爲單個字段分配恆定的提升值?

+0

有你(HTTP:// WWW。 elasticsearch.org/guide/reference/mapping/core-types/)大多數類型都有一個'boost'參數。 – ramseykhalaf

+0

你是對的,但我更喜歡計算查詢時間的分數,而不是索引時間。 –

+0

好的,你可以在大多數查詢類型中使用'boost'參數來實現這個功能[參見'term' query作爲例子](http://www.elasticsearch.org/guide/reference/query-dsl/term-查詢/)。 – ramseykhalaf

回答

2

這裏是解決方案:包裝查詢「custom_boost_factor」,它乘所有類型的嵌入式查詢的分數:[?看了看映射的ES文件]

curl -XPOST 'http://localhost:9200/test/entry/_search?pretty=true' -d '{ 
    "query":{ 
    "custom_boost_factor" :{ 
     "query" : { 
     "text_phrase_prefix" : { 
      "title" : "test" 
     } 
     }, 
     "boost_factor": 2.0 
    } 
    } 
}' 
相關問題