我正在嘗試按照文檔(可能是過去的當前日期)中所述執行以下操作。Elasticsearch 2.x與multi_match查詢中不同類型的相同字段的不同提升
https://www.elastic.co/guide/en/elasticsearch/guide/current/mapping.html
我會適應那裏說明什麼,我想實現的方案。
假設我們有我們的索引兩種類型:blog_t1的博客文章 的話題1,和blog_t2有關主題2.這兩種類型 有一個標題字段的博客文章。
然後,我只想將查詢提升應用於blog_t1 的標題字段。
在以前的Elasticsearch版本中,您可以使用blog_t1.title和blog_t2.title從該類型中引用 字段。所以助推 其中之一就像blog_t1.title^2一樣簡單。
但自從Elasticsearch 2.x以來,對類型的一些舊的支持已被刪除(出於很好的理由,如消除歧義)。這些變化在這裏描述。
https://www.elastic.co/guide/en/elasticsearch/reference/current/breaking_20_mapping_changes.html
所以我的問題是,我怎麼能做到這一點提升爲標題,只是類型blog_t1,而不是blog_t2,與Elasticsearch 2.X,在multi_match查詢?
該查詢會是這樣的,但這顯然不起作用type.field已不再是一件事了。
GET /my_index/_search
{
"query": {
"multi_match": {
"query": "Hello World",
"fields": [
"blog_t1.title^2",
"blog_*.title",
"author",
"content"
]
}
}
}
僅供參考,我迄今發現的唯一的解決辦法就是給標題不同的名稱,如title_boosted爲blog_t1,只是標題爲別人,利用的信息時,這是有問題的,因爲我再也不能使用「標題」作爲獨特的事情。
謝謝。
感謝您的回答,我明白您的意思。這確實是一個有趣的建議。但事情是,我想控制具有特定價值的推動。例如,如果我添加需要特定增強功能的第三個字段,則您的解決方案將無法工作,例如, blog_t1.title^3,blog_t2.title^2,blog_t3.title^1.5,blog_t * .title。 –
絕對同意,也許你可以將它與[score]功能相結合(https://www.elastic.co/guide/en/elasticsearch/guide/current/function-score-filters.html)乘以score_mode? – macebalp
關於分數函數也檢查[this](https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html)。 – macebalp