我有一個檔案,其具有saleAmount在索引中定義的長型別欄位。我想根據這個欄位找到等于輸入值的檔案,但是 ES 沒有eq運算子。我要做的是:
GET indexname/_search
{
"query": {
"range": {
"saleAmount": {"gte": 801, "lte": 801}
}
}
}
上面的查詢作業正常,但看起來不太好。我想知道在 Elasticsearch 中比較數字值的最佳方法是什么?
uj5u.com熱心網友回復:
您可以簡單地使用term查詢,下面是作業示例
使用默認映射索引示例資料,因為 Elasticsearchlong為數字資料創建欄位。
PUT <your-lasticsearch-index>/_doc/1
{
"price" : 801
}
PUT <your-lasticsearch-index>/_doc/2
{
"price" : 802
}
price使用欄位上的術語搜索查詢。
{
"query" : {
"term" : {
"price" : 801
}
}
}
搜索結果只帶一個帶有價格的檔案eq到801。
"hits": [
{
"_index": "number_eq",
"_id": "1",
"_score": 1.0,
"_source": {
"price": 801
}
}
]
Waring :正如@Val 在評論中提到的,數字欄位沒有針對terms查詢進行優化,為了獲得更好的性能,我們應該始終range對數字欄位使用查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/489609.html
