1、準備資料
put /lib, "user":,
"address":,
"age":,
"interests":,
"birthday":}}
}}
put /lib/user/1put /lib/user/2
put /lib/user/3
put /lib/user/4
put /lib/user/5
2、操作演示
1)按照年齡降序排序
get lib/user/_search},"sort": [
}]}
查詢結果
,"hits": ,
"sort": [
50]},
,"sort": [
29]},
,"sort": [
26]},
,"sort": [
23]},
,"sort": [
20]}
]}}
因為age是數值型別的,所以可以排序,預設字串型別的不能排序,因為字串型別的已經分詞了。如下根據interests排序會報錯:
get lib/user/_search},"sort": [
}]}
],"type": "search_phase_execution_exception",
"reason": "all shards failed",
"phase": "query",
"grouped": true
, "failed_shards": [}]
},"status": 400}
3、如何對字串型別的排序
對乙個字串型別的字段進行排序通常不準確,因為已經被分詞成多個詞條了。
解決方式:對欄位索引兩次,一次索引分詞(用於搜尋),一次索引不分詞(用於排序)
1)刪掉上面的lib索引,重新建立,修改 interests 欄位的建立方式,並重新新增如上資料
put /lib, "user":,
"address":,
"age":,
"interests":
},"fielddata": true
}, "birthday":}}
}}
字串有兩種型別,一種是text,預設分詞,一種是keyword不分詞,interests建立兩種型別的索引,一種text(倒排索引),乙個keyword(正排索引)。
重新執行操作,返回正確結果:
get lib/user/_search},"sort": [
}]}
,"hits": ,
"sort": [
"xi huang hejiu,duanlian,lvyou"]},,
"sort": [
"xi huan tingyinyue,changge,tiaowu"]},,
"sort": [
"xi huan hejiu,duanlian,changge"]},,
"sort": [
"xi huan hejiu,duanlian,changge"]},,
"sort": [
"xi huan biancheng,tingyinyue,lvyou"]}]
}}
elasticsearch5 2集群部署
本文主要介紹兩節點集群部署 一 實驗環境 節點1 192.168.115.11 節點2 192.168.115.12 二 安裝配置 具體部署過程見單機版 兩台機器都先安裝完成,之後修改配置檔案 注意 為了達到es的集群必須修改cluster.name和node.name。cluster.name必須...
mysql5 2使用 5 2 使用MySQL資料庫
目前internet上流行的 構架方式是lamp,其中的m即mysql,作為資料庫,mysql以免費 開源 使用方便為優勢成為了很多web開發的後端資料庫儲存引擎。mysql驅動 go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,...
mysql5 2使用 5 2 使用MySQL資料庫
目前internet上流行的 構架方式是lamp,其中的m即mysql,作為資料庫,mysql以免費 開源 使用方便為優勢成為了很多web開發的後端資料庫儲存引擎。mysql驅動 go中支援mysql的驅動目前比較多,有如下幾種,有些是支援database sql標準,而有些是採用了自己的實現介面,...