[英]Elasticsearch: obtaining each field score in the same document
假設我有一個包含三個字段的文檔: name
、 company
、 email
每個都用 edge-ngram 映射
{
"name": "John",
"company": "John's company",
"email": "johndoe@gmail.com"
}
在搜索“john”時,我希望能夠單獨獲得每個字段的分數
{
"query": {
"bool": {
"should": [
{ "match": { "name": "john" }},
{ "match": { "company": "john" }},
{ "match": { "email": "john" }}
]
}
}
}
在此示例中,將每個match
子句的分數相加,然后除以match
子句的數量。 那么有沒有辦法從每個match
子句中單獨獲得分數,而不僅僅是整個文檔的最終分數?
我認為設置"explain": true也不理想,因為它提供了非常低級的評分細節(低效且難以解析)。
我想不出一種方法可以在不修改搜索結果的情況下執行此操作。
但是,如果您要在每個字段上使用不同的提升,您可能能夠顛倒方向來確定每個字段的值。 例如,將一個字段增加 1,將下一個字段增加 10,將最后一個字段增加 100,並檢查最終數字可能會為您提供您正在尋找的結果,但是增加 100 的字段將是唯一重要的字段。
好奇這個的應用,因為它似乎在一般情況下提升可能會解決你正在尋找的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.