亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Elasticsearch - field_value_factor,缺少參數

Elasticsearch - field_value_factor,缺少參數

Go
米脂 2022-01-17 10:03:53
所以我終于設置了elasticsearch數據庫并將數據導入其中。有時當我嘗試從前端請求數據時,我會收到 500 錯誤(不是一直,只是有時)。我試圖從 POSTMAN 請求數據(以查看 ES 錯誤消息)。我有:{  "error": "SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[9m4uVcf3TLmQ9Kr7z_fSpQ][text][0]: QueryPhaseExecutionException[[text][0]: query[filtered(function score (blended(terms: [url_words:test, domain_words:test, title:test, body:test]), functions: [{filter(*:*), function [org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction@56319fc9]}{filter(*:*), function [org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction@60b46f02]}]))->cache(_type:page)],from[0],size[25]: Query Failed [Failed to execute main query]]; nested: ElasticsearchException[Missing value for field [lang_en]]; }{[9m4uVcf3TLmQ9Kr7z_fSpQ][text][1]: QueryPhaseExecutionException[[text][1]: query[filtered(function score (blended(terms: [url_words:test, domain_words:test, title:test, body:test]), functions: [{filter(*:*), function [org.elasticsearch.common.lucene.search.function.FieldValueFactorFunction@3ca7d41e]}{filter(*:*), function   "status": 500}這是請求正文:{      "query": {        "function_score": {          "query": {            "multi_match": {              "query": "test",              "minimum_should_match": "-25%",              "type": "cross_fields",                  "tie_breaker": 0.5,                  "fields": ["title^3", "body", "url_words^2", "domain_words^8"]            }          },          "functions": [{                "field_value_factor": {              "field": "rank",              "factor": 1            }        },{                        "field_value_factor": {                "field": "lang_en"            }                }]        }      },      "from": 0,      "size": 25    }我知道字段 [lang_en] 的缺失值是問題所在。我用谷歌結果玩弄了 es,但沒有成功。ES 版本:1.5.2有任何想法嗎 ?
查看完整描述

2 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

在至少一個文檔中,該字段lang_en為空、空或根本不存在。


您需要修改您的函數,以便通過使用任何有意義的默認值(0、1 等)field_value_factor的設置來告訴它在這種情況下要做什么:missing


{

    "field_value_factor": {

         "field": "lang_en",

         "missing": 1                <---- add this line

    }

}


查看完整回答
反對 回復 2022-01-17
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

問題出在愚蠢的 AWS ES 版本 1.5.2 上。

我的解決方案:創建 EC2 實例并手動部署 Elasticsearch。


查看完整回答
反對 回復 2022-01-17
  • 2 回答
  • 0 關注
  • 310 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號