es多個字段排序 多值字段字串排序

2021-10-13 07:48:01 字數 784 閱讀 7349

多值字段字串排序

譯者注: 多值字段是指同乙個欄位在es索引中可以有多個含義,即可使用多個分析器(analyser)進行分詞與排序,也可以不新增分析器,保留原值。

被分析器(analyser)處理過的字元稱為analyzed field(譯者注:即已被分詞並排序的字段,所有寫入es中的字段預設圴會被analyzed), analyzed字串字段同時也是多值字段,在這些欄位上排序往往得不到你想要的值。 比如你分析乙個字元 "fine old art",它最終會得到三個值。例如我們想要按照第乙個詞首字母排序, 如果第乙個單詞相同的話,再用第二個詞的首字母排序,以此類推,可惜 elasticsearch 在進行排序時 是得不到這些資訊的。

當然你可以使用 min 和 max 模式來排(預設使用的是 min 模式)但它是依據art 或者 old排序, 而不是我們所期望的那樣。

為了使乙個string欄位可以進行排序,它必須只包含乙個詞:即完整的not_analyzed字串(譯者注:未經分析器分詞並排序的原字串)。 當然我們需要對欄位進行全文本搜尋的時候還必須使用被 analyzed 標記的字段。

"tweet": {

"type": "string",

"analyzer": "english"

"tweet": { <1>

"type": "string",

"analyzer": "english",

"fields": {

"raw": { <2>

"type": "string",

"index": "not_analyzed"

mysql order by多個字段排序

mysql order by 多個字段 排序規則 比如 如要根據configid和marketid來排序 有如下語句 select from table order by configid,marketid desc 那麼結果 分析 其實這個語句等同於 先按照configid公升序,再按照marke...

MySql Order By 多個字段 排序規則

建一測試表如下 create table a code varchar 255 default null,name varchar 255 default null engine innodb default charset utf8 insert into a values 中一 我 insert...

MySql Order By 多個字段 排序規則

database 17 目錄 建一測試表如下 sql view plain copy create table a code varchar 255 default null name varchar 255 default null engine innodb default charset ut...