2015-10-22 38 views
-1

基本上我想基於某些字段進行自定義腳本排序。他們的領域可能因不同的標準而有所不同在我們啓用動態腳本之前,這樣就沒問題了,因爲我可以在我身邊更改關鍵字。但是現在只允許通過文件腳本。 這是我的查詢:elasticsearch使用自定義字段名稱的腳本

curl -XPOST localhost:9200/_search -d '{ 
    "query": { 
    "function_score": { 
     "query": { 
     ... 
     }, 
     "functions": [ 
     { 
      "script_score": { 
      "file": "myFile", 
      } 
     } 
     ] 
    } 
    } 
}' 

文件看起來像:

doc["keyword1"].value > 5 ? 5 : doc["keyword1"].value 

雖然我可以建立不同的查詢(使用不同的文件存在)基於關鍵字的名稱。我想知道我們是否真的可以將關鍵字作爲參數傳遞,以便不需要在腳本/文件夾下存儲多個文件。

謝謝。

回答

0

是的,這是可能的。腳本文件應該是這樣的:

doc[some_param].value > 5 ? 5 : doc[some_param].value 

和你這樣的查詢:

"functions": [ 
    { 
     "script_score": { 
     "file": "test", 
     "params": { 
      "some_param": "keyword1" 
     } 
     } 
    } 
    ] 
相關問題